2016-09-02 3 views
1

ファサードパターンは、複雑なサブシステムのやりとりを隠すことでより簡単なインターフェースを提供するために使用されています。ファサードパターン - 要求の流れ

私はFacadeパターン上のウィキペディア以下UMLを参照しています:

enter image description here

をファサードへの通信/通話は単方向の要求すなわちされている、唯一のクライアント1 /クライアント2は、要求を送信し、受信ファサードからの応答は ですが、ファサードはClient1/Client2へのリクエストを開始できません。

私はファサードが一方向(クライアント - >外観)を提供するという正しいアム - システム/クラスを横切って相互作用メディエータが双方向(>メディエータクライアント<)を容易にするように要求相互作用(より簡単なインターフェースにより)どこ?

この点を強調する参考資料はありますか?

答えて

1

はい、両方のカウントで正しいです。 GoFの本、282ページ(重点鉱山)から直接引用したものです。

ファサードは、より便利なインターフェイスを提供するためにオブジェクト のサブシステムを抽象化する点でメディエータと異なります。 そのプロトコルは単方向です;つまり、Facadeオブジェクトはサブシステムクラスの要求を行いますが、その逆はできません。 コントラストでは、メディエータは、同僚のオブジェクトが提供しない、または が提供できない協調動作を可能にします。であり、プロトコルは多方向です。メディエータは、行動パターンであるのに対し

はまた、ファサード構造パターンに分類されることに注意してください。ファサードが要求を開始することができれば、それは動作します。

1

(1)通信が/ファサードへの呼び出しが 要求は、IE片方向されている、唯一のクライアント1 /クライアント2は、要求を送信し、ファサードから 応答を受信しますが、ファサードには、要求を開始することはできません〜 Client1/Client2?

正しい。だから彼らはクライアントとして知られています。 Facadeクラスは、クライアントのために仕事をする実際のサーバーです(Webサーバーのストーリーと不必要に混在することはありません)。ファサードは、クライアントが実際に何が起こるかを知る必要がなく、高度な抽象化を知る必要がある場合に意味があります。

例:私はちょうどroom.powerOff();を呼び出したいクライアントとしてこの例では

public class Bulb{ 

    public void on(){ 
     //logic to turn on the bulb. 
    } 

    public void off(){ 
     //logic to turn off the bulb. 
    } 

} 

public class Fan{ 

    public void on(){ 
     //logic to turn on the fan. 
    } 

    public void off(){ 
     //logic to turn off the fan. 
    } 

} 

public class Room{ 

    private Bulb bulb; 
    private Fan fan; 

    public void powerOff(){ 
     this.bulb.off(); 
     this.fan.off(); 
    } 
} 

。私は内部的に何が起こるかに関心がありません。 ( - >メディエータクライアント<) 相互作用のメディエーターとして 双方向を容易に要求相互作用(より簡単なインターフェースにより) -

(2)私は、ファサードが一方向 (>ファサードクライアント)を提供するという正しいアムシステム/クラス全体で?

(a)ファサードは、一方向(クライアント - ファサード)要求のやりとり(より簡単なインタフェースによる) - >正しいものを提供します。

(b)メディエータは双方向(クライアント< - >メディエータ)対話 - >修正を容易にします。それは、クライアントがサブシステムであるようなものです(Facadeで)。 :))

+0

ありがとうございますが、この点を強調する参考資料を提供できますか? – developer

+0

ファサード - > https://sourcemaking.com/design_patterns/facade メディエーター - > https://sourcemaking.com/design_patterns/mediator –

関連する問題