Structureモード-Facade(外観)モード
定義:
サブシステム内のインタフェースのセットに一貫したインタフェースを提供し、外観モードは高レベルのインタフェースを定義し、このインタフェースはこのサブシステムをより容易に使用することができる.
ロールの定義: SubSystem:1つ以上のサブシステムがあり、各サブシステムの機能は相対的に独立している.サブシステムはFacadeの存在を知らないが、サブシステムに対してFacadeは別のクライアント にすぎない. Facade:お客様が呼び出すための統合インタフェースを提供します.このロールは、サブシステムの関連機能 を知っています.
Outlook機能:
誰もが多くのメールボックスを持っている可能性があります.MSNの、網易の、会社の、googleの.毎日各メールボックスにログインして受信するのは面倒で、メールを漏らすこともあります.そのため、Outlookのようなクライアントツールを使用すると便利になります.
サブシステム:
外観クラス:
最後にOutlookだけですべてのメールボックスの手紙を簡単に受け取ることができます.
出力結果:
ログインメールアドレス...網易メールボックスをダウンロードした未読メール...新浪メールボックスにログイン...新浪メールボックスの未読メールをダウンロードしました...
いつかGMailのメールボックスに登録したら、Outlookクラスを変更するだけでいいです.従って,外観モードは実際にはシステム間関係を円滑にし,システム間結合度を低減する方法である.
サブシステム内のインタフェースのセットに一貫したインタフェースを提供し、外観モードは高レベルのインタフェースを定義し、このインタフェースはこのサブシステムをより容易に使用することができる.
ロールの定義:
Outlook機能:
誰もが多くのメールボックスを持っている可能性があります.MSNの、網易の、会社の、googleの.毎日各メールボックスにログインして受信するのは面倒で、メールを漏らすこともあります.そのため、Outlookのようなクライアントツールを使用すると便利になります.
サブシステム:
public class NetEaseMail {
public void login163Mail() {
System.out.println(" ...");
}
public void getUnreadMail() {
System.out.println(" ...");
}
}
public class SinaMail {
public void loginSinaMail() {
System.out.println(" ...");
}
public void getUnreadMail() {
System.out.println(" ...");
}
}
外観クラス:
public class Outlook {
private NetEaseMail netEaseMail;
private SinaMail sinaMail;
public Outlook() {
netEaseMail = new NetEaseMail();
sinaMail = new SinaMail();
}
public void receiveMails() {
netEaseMail.login163Mail();
netEaseMail.getUnreadMail();
sinaMail.loginSinaMail();
sinaMail.getUnreadMail();
}
}
最後にOutlookだけですべてのメールボックスの手紙を簡単に受け取ることができます.
public class You {
public static void main(String args[]) {
new Outlook().receiveMails();
}
}
出力結果:
ログインメールアドレス...網易メールボックスをダウンロードした未読メール...新浪メールボックスにログイン...新浪メールボックスの未読メールをダウンロードしました...
いつかGMailのメールボックスに登録したら、Outlookクラスを変更するだけでいいです.従って,外観モードは実際にはシステム間関係を円滑にし,システム間結合度を低減する方法である.