dee*_*pak 3 java design-patterns facade mediator
Facade和mediator设计模式之间有什么区别.我想了解哪种设计模式可以在这两种场景中选择.我正在浏览以下链接,并在用例方面发现两者相同.
外观设计模式:http://www.tutorialspoint.com/design_pattern/facade_pattern.htm
Mediator设计模式:http: //www.java2s.com/Tutorial/Java/0460__Design-Pattern/CoordinatingYourObjectswiththeMediatorPatterns.htm
我对以下代码段感到困惑,这两个代码段在两种设计模式中看起来都很相似.
public class ShapeMaker {
private Shape circle;
private Shape rectangle;
private Shape square;
public ShapeMaker() {
circle = new Circle();
rectangle = new Rectangle();
square = new Square();
}
public void drawCircle(){
circle.draw();
}
public void drawRectangle(){
rectangle.draw();
}
public void drawSquare(){
square.draw();
}
}
Run Code Online (Sandbox Code Playgroud)
public class Mediator {
Welcome welcome;
Browse browse;
Purchase purchase;
Exit exit;
public Mediator() {
welcome = new Welcome(this);
browse = new Browse(this);
purchase = new Purchase(this);
exit = new Exit(this);
}
public void handle(String state) {
if (state.equals("welcome.shop")) {
browse.execute();
} else if (state.equals("shop.purchase")) {
purchase.execute();
} else if (state.equals("purchase.exit")) {
exit.execute();
}
Run Code Online (Sandbox Code Playgroud)
外观公开现有功能,中介器添加到现有功能.
如果您查看外观示例,您将看到您没有添加任何新功能,只是为当前对象提供了新视角.例如,Circle已经存在,您只是使用drawCircle方法抽象出圆圈.
如果查看mediator类,可以看到该方法handle()通过检查状态来提供其他功能.如果您要取出条件,您将拥有外观模式,因为附加功能已消失.
小智 6
该门面模式为您提供了一个简单的界面上的一组连贯的类这相互作用。例如,您家中控制您家中所有设备的遥控器就是一个门面。您只需与遥控器交互,遥控器就会确定应该响应哪个设备以及要发送什么信号。
所述介体图案采用两个对象之间的通信的烦恼,没有两个对象需要直接具有彼此参考。一个现实生活中的例子是发送一封信,你寄出你的信,邮政部门会取走它并确保它会被送到收件人处。没有你告诉他们他们应该走什么路线。这就是中介所做的。
但是,您的示例听起来更像是创建模式(看起来像工厂)和行为模式(状态模式)。我理解你的困惑。
| 归档时间: |
|
| 查看次数: |
2131 次 |
| 最近记录: |