Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 建筑设计困境。什么';什么是最好的设计?_Java_Design Patterns - Fatal编程技术网

Java 建筑设计困境。什么';什么是最好的设计?

Java 建筑设计困境。什么';什么是最好的设计?,java,design-patterns,Java,Design Patterns,我正在试图找出什么是最好的设计,我可以为下面的问题。我的手机上有一个连接到互联网的客户端。当连接中出现异常时,我希望向用户显示一个信息性弹出窗口 我有一个类可以查询手机,查看是否安装了SIM卡、信号电平、手机是否连接到wifi、wifi上的信号强度以及设置是否正确配置 我想封装这个类,因为这就是它应该做的,只是查询各种状态的电话。我是否应该返回一个包含各种标志的字节,让调用方知道如何处理这些标志?我是否应该告诉来电者要显示哪种类型的错误消息?我应该为每个状态设置一个标志,并为它们设置getter

我正在试图找出什么是最好的设计,我可以为下面的问题。我的手机上有一个连接到互联网的客户端。当连接中出现异常时,我希望向用户显示一个信息性弹出窗口

我有一个类可以查询手机,查看是否安装了SIM卡、信号电平、手机是否连接到wifi、wifi上的信号强度以及设置是否正确配置


我想封装这个类,因为这就是它应该做的,只是查询各种状态的电话。我是否应该返回一个包含各种标志的字节,让调用方知道如何处理这些标志?我是否应该告诉来电者要显示哪种类型的错误消息?我应该为每个状态设置一个标志,并为它们设置getter吗?或者你能想到更好的设计吗?

一般的经验法则是你可以让程序做你应该做的任何事情。这意味着您的状态需要映射到如下所示的枚举:

  enum Statuses  
    {  
        NO_CONNECTION("no connection", NO_WIFI("no wifi"),
        ALL_GOOD("Everything is fine")  ;  //etc
    }  
您的
手机
类将希望如下所示:

class Phone  
{  
   Statuses currentStatus;  
   Signal currentWifiSignal;
   Signal currentRadioSignal;  
   boolean isSimInserted;   
}  
Signal
类将保存用于确定
电话
连接强度和其他属性的逻辑(我对这些属性都不肯定)


在使用过程中,您将查询
Phone
对象,如果出现异常,您将向调用者返回反映当前状态的
Phone
对象,该对象将允许对
getter
进行简单调用以验证当前条件。

一般经验法则是您可以拥有的任何东西你应该做的程序。这意味着您的状态需要映射到如下所示的枚举:

  enum Statuses  
    {  
        NO_CONNECTION("no connection", NO_WIFI("no wifi"),
        ALL_GOOD("Everything is fine")  ;  //etc
    }  
您的
手机
类将希望如下所示:

class Phone  
{  
   Statuses currentStatus;  
   Signal currentWifiSignal;
   Signal currentRadioSignal;  
   boolean isSimInserted;   
}  
Signal
类将保存用于确定
电话
连接强度和其他属性的逻辑(我对这些属性都不肯定)

在使用过程中,您将查询
Phone
对象,如果出现异常,您将向调用者返回反映当前状态的
Phone
对象,该对象将允许对
getter
进行简单调用,以验证当前条件。

保留您的代码。您可能想考虑将该功能拆分为几个类,因为您的一个类模型看起来很难控制您的代码。您可能想考虑将该功能拆分为几个类,因为您的一个类模型看起来很快就会失控。