我正在试图弄清楚出于以下问题我能采用的最佳设计是什么。我的手机上有一个客户端连接到互联网。当连接中出现异常时,我想向用户显示信息弹出窗口。
我有一个查询手机的课程,看看是否安装了SIM卡,信号电平,手机是否连接到wifi,wifi上的信号强度,以及设置是否正确配置。
我想封装这个类就像它应该做的那样,只需查询手机的各种状态。我应该返回一个包含各种标志的字节,让调用者弄清楚如何处理这些标志吗?我应该告诉调用者要显示哪种类型的错误消息?我是否应该为每个状态设置一个标志并为他们提供吸气剂?或者你能想到更好的设计吗?
答案 0 :(得分:1)
一般的经验法则是你应该做的任何程序。这个设计的意思是你的状态需要映射到枚举,如下所示:
enum Statuses
{
NO_CONNECTION("no connection", NO_WIFI("no wifi"),
ALL_GOOD("Everything is fine") ; //etc
}
您的Phone
课程会看起来像这样:
class Phone
{
Statuses currentStatus;
Signal currentWifiSignal;
Signal currentRadioSignal;
boolean isSimInserted;
}
Signal
类将保留用于确定Phone
连接强度和其他属性的逻辑(我没有一个属性)。
在使用过程中,您将查询Phone
对象,如果发生异常,您将向调用者返回一个反映当前状态的Phone
对象,该状态反过来允许对其进行简单调用。 getter
验证当前状况。