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

时间:2012-03-20 20:53:01

标签: java design-patterns

我正在试图弄清楚出于以下问题我能采用的最佳设计是什么。我的手机上有一个客户端连接到互联网。当连接中出现异常时,我想向用户显示信息弹出窗口。

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

我想封装这个类就像它应该做的那样,只需查询手机的各种状态。我应该返回一个包含各种标志的字节,让调用者弄清楚如何处理这些标志吗?我应该告诉调用者要显示哪种类型的错误消息?我是否应该为每个状态设置一个标志并为他们提供吸气剂?或者你能想到更好的设计吗?

1 个答案:

答案 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验证当前状况。