当前位置: 首页 > 面试题库 >

外观和中介设计模式之间的区别?

黄鸣
2023-03-14
问题内容

外观和中介设计模式有什么区别。我想了解在哪种情况下可以在这两种设计之间进行选择。我浏览了以下链接,发现在用例方面两者相同。

外观设计模式:http
:
//www.tutorialspoint.com/design_pattern/facade_pattern.htm

介体设计模式: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();
   }
}

调解员课程:

   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();
      }

问题答案:

我对下面的代码段感到困惑,这两个设计模式看起来都相似。

我认为您正在看到两种模式的组合方面。

外墙
链接到子系统的各种现有类,以添加一些典型功能,从而简化了子系统的使用。在您引用的示例代码中,ShapeMaker提供了有助于制作形状的服务。

调解员
链接到必须协作的各个同事,以最大程度地减少同事之间相互之间的了解。最小化知识具有减少同事之间的耦合(他们只了解调解人)和增强他们的凝聚力的副作用(他们通常不必担心,因为他们不了解大局)。

在这两种模式中,集中化类均承担处理与其链接的类的复杂性。

以下是“四人帮”中UML的基本模式:



 类似资料:
  • 本文向大家介绍JavaScript设计模式之外观模式介绍,包括了JavaScript设计模式之外观模式介绍的使用技巧和注意事项,需要的朋友参考一下 外观模式说明 说明:外观模式是用于由于子系统或程序组成较复杂而提供的一个高层界面接口,使用客户端更容易访问底层的程序或系统接口; 外观模式是我们经常使用遇到的模式,我们经常涉及到的功能,可能需要涉及到几个子接口或子系统,而我们的某个功能,可能只需要这向

  • 介绍 外观模式(Facade)为子系统中的一组接口提供了一个一致的界面,此模块定义了一个高层接口,这个接口值得这一子系统更加容易使用。 正文 外观模式不仅简化类中的接口,而且对接口与调用者也进行了解耦。外观模式经常被认为开发者必备,它可以将一些复杂操作封装起来,并创建一个简单的接口用于调用。 外观模式经常被用于JavaScript类库里,通过它封装一些接口用于兼容多浏览器,外观模式可以让我们间接调

  • 本文向大家介绍java设计模式之外观模式(Facade),包括了java设计模式之外观模式(Facade)的使用技巧和注意事项,需要的朋友参考一下 概述 外部与内部子系统通信时必须通过的一个统一的外观模式对象进行,就是外观模式,也称门面模式。一般而言,Facade模式是为了降低客户端与实现化层之间的依赖性。外观模式的用意是为子系统提供一个集中化和简化的沟通渠道。 UML类图 在上面的UML图中,出

  • 外观(Facade) Intent 提供了一个统一的接口,用来访问子系统中的一群接口,从而让子系统更容易使用。 Class Diagram Implementation 观看电影需要操作很多电器,使用外观模式实现一键看电影功能。 // java public class SubSystem { public void turnOnTV() { System.out.prin

  • 本文向大家介绍JavaScript设计模式之外观模式实例,包括了JavaScript设计模式之外观模式实例的使用技巧和注意事项,需要的朋友参考一下 外观模式(门面模式),是一种相对简单而又无处不在的模式。外观模式提供一个高层接口,这个接口使得客户端或子系统更加方便调用。 用一段再简单不过的代码来表示: 如果你需要分别调用getName和getSex函数. 那可以用一个更高层的接口getUserIn

  • 本文向大家介绍java设计模式之外观模式学习笔记,包括了java设计模式之外观模式学习笔记的使用技巧和注意事项,需要的朋友参考一下 外观模式: 又称门面模式: 外观Facade为子系统的一组接口提供一个一致界面,使得这组子系统易于使用(通过引入一个新的外观角色降低原系统复杂度,同时降低客户类与子系统的耦合度). 图片来源: 设计模式: 可复用面向对象软件的基础. 实现 案例需求: 租房 有过自己找