区块链技术博客
www.b2bchain.cn

调停者和门面设计模式

这篇文章主要介绍了调停者和门面设计模式的讲解,通过具体代码实例进行16244 讲解,并且分析了调停者和门面设计模式的详细步骤与相关技巧,需要的朋友可以参考下https://www.b2bchain.cn/?p=16244

本文实例讲述了2、树莓派设置连接WiFi,开启VNC等等的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7039.html。具体如下:

调停者和门面设计模式

今天我们来聊两个设计模式:调停者设计模式和门面设计模式,为什么要将他们放在一起讲解,因为他们两个东东太像了,仅仅是由于作用的地方不同而产生的不同的叫法。

我们用一个对于我们90后最难的一个问题来入手吧。假设我们厌倦了城市生活,想要找一个安静的地方安家,养猪,顺便写一个猪脸识别来分类管理这些猪(梦想中的生活)。而在做这些事情的前提,我们必须建造一个房子和一个猪圈。

我们来看一下我们以前会怎么做。

调停者和门面设计模式

盖房子需要工人,砖头,水泥等等,我们需要一个一个联系所需要的人。但我这么聪明当然不会这么干了,所以我找了一个人来帮我完成这些事情,于是就成为了这样的流程。

调停者和门面设计模式

我找了一个包工头,代理商帮我去完成这些事情。这个流程就是一个完整的门面模式。是不是感觉和代理模式有点像,帮我做事情。其实吧设计模式到最后就殊途同归了,正所谓,太极剑法,学多少忘多少,最后记得的只是太极剑。

我们回到编程领域,我们来看一下门面模式具体的类图实现

调停者和门面设计模式

那接下来我们来看一下调停者设计模式。

它和门面模式最大的区别就是门面模式是挡在外层的,而它是在所有服务中间的。我们来看一下它的原理图。

调停者和门面设计模式

我们再来看一下它的类图实现

调停者和门面设计模式

发现了没,两个模式的类图实现几乎相同,所以他们的代码实现也几乎相同。

了解了他们的原理以后,我们来聊聊他们在实际代码中的应用。

**门面模式:**服务器部署时的网关,将所有的请求拦截,具体的方法转发由网关决定

**调停者模式:**协调中间件,微服务中将所有的服务注册到类似于zookeeper的协调中间件中,通过中间件访问其他服务;消息中间件,需要什么消息通过消息中间件进行获取。

对于一些比较老的项目,门面模式和调停者模式的调度中心很有可能是一个,如通过Nginx管理服务。

我们来看一下具体的代码实现吧。

门面模式代码实现(角色组成)

  • 子系统
class Cement{     void cement(){         System.out.println("水泥");     } }  class Worker{     void worker(){         System.out.println("工人");     } }  class Brick{     void brick(){         System.out.println("砖头");     } }

  • 门面
class Contractor{     private Cement cement = new Cement();     private Worker worker = new Worker();     private Brick brick = new Brick();      void cement(){         cement.cement();     }      void worker(){         worker.worker();     }      void brick(){         brick.brick();     } }

调停者模式的代码实现和门面模式几乎相同。两者只是因为应对与不同的位置而诞生,本质相同。

本文转自互联网,侵权联系删除调停者和门面设计模式

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 调停者和门面设计模式
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们