2012-03-20 2 views
2

私は、次の問題のためにどのような設計が可能かを理解しようとしています。私はインターネットに接続するクライアントを携帯電話に持っています。接続に例外がある場合は、ユーザーに有益なポップアップを表示します。アーキテクチャのジレンマ。最高のデザインは何ですか?

SIMカードがインストールされているか、信号レベル、電話機がWi-Fiに接続されているかどうか、Wi-Fiの信号強度、設定が正しく設定されているかどうかを確認するクラスがあります。

このクラスをカプセル化したいのですが、電話機にさまざまなステータスを照会するだけです。私は、さまざまなフラグをパックし、呼び出し側がそれらのフラグをどうするかを理解できるようにバイトを返すべきですか?発信者に表示するエラーメッセージのタイプを教えてください。私は各ステータスのフラグを持っていて、ゲッターを持っているべきですか?それとも、あなたが考えるより良いデザインがありますか?

+0

コード[DRY](http://www.solidsyntaxprogrammer.com/dont-repeat-yourself/)を保管してください。そのクラスをいくつかのクラスに分割することを検討することをお勧めします.1つのクラスのモデルはすぐに外に出るように見えるからです –

答えて

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オブジェクトを照会し、例外が発生した場合に、あなたは、呼び出し元に順番に現在の状況を検証するためにgetter上の簡単な呼び出しが可能になり、現在の状態を反映しPhoneオブジェクトを返します。

関連する問題