(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で)。 :))
ありがとうございますが、この点を強調する参考資料を提供できますか? – developer
ファサード - > https://sourcemaking.com/design_patterns/facade メディエーター - > https://sourcemaking.com/design_patterns/mediator –