Java 建筑设计困境。什么';什么是最好的设计?
我正在试图找出什么是最好的设计,我可以为下面的问题。我的手机上有一个连接到互联网的客户端。当连接中出现异常时,我希望向用户显示一个信息性弹出窗口 我有一个类可以查询手机,查看是否安装了SIM卡、信号电平、手机是否连接到wifi、wifi上的信号强度以及设置是否正确配置Java 建筑设计困境。什么';什么是最好的设计?,java,design-patterns,Java,Design Patterns,我正在试图找出什么是最好的设计,我可以为下面的问题。我的手机上有一个连接到互联网的客户端。当连接中出现异常时,我希望向用户显示一个信息性弹出窗口 我有一个类可以查询手机,查看是否安装了SIM卡、信号电平、手机是否连接到wifi、wifi上的信号强度以及设置是否正确配置 我想封装这个类,因为这就是它应该做的,只是查询各种状态的电话。我是否应该返回一个包含各种标志的字节,让调用方知道如何处理这些标志?我是否应该告诉来电者要显示哪种类型的错误消息?我应该为每个状态设置一个标志,并为它们设置getter
我想封装这个类,因为这就是它应该做的,只是查询各种状态的电话。我是否应该返回一个包含各种标志的字节,让调用方知道如何处理这些标志?我是否应该告诉来电者要显示哪种类型的错误消息?我应该为每个状态设置一个标志,并为它们设置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
进行简单调用,以验证当前条件。保留您的代码。您可能想考虑将该功能拆分为几个类,因为您的一个类模型看起来很难控制您的代码。您可能想考虑将该功能拆分为几个类,因为您的一个类模型看起来很快就会失控。