美文网首页
设计模式之解耦

设计模式之解耦

作者: 泓礼 | 来源:发表于2018-12-04 19:12 被阅读0次

设计模式经常考虑的一个问题是将对象间关系解耦,逼近开闭原则,使得代码容易扩展

最近设计到读写者间信息的传递,writer需要定期将信息告知reader,最开始想到的是监听者模式,将reader注册到writer,

后来涉及到writer未必总是提前存在,因此需要一个中心者协调,这样演变为类似pub/sub的架构(中心管理者来负责更多的协调)

ps:一篇很好的Event Notifier设计模式分析文章

writer,reader关系分析(原始的单向传递构思):

创建Reader时,需要判断Writer是否存在,如果存在需提供其activeSegmentId,及active Vector到reader,并将reader注册到writer,以便于reader接收最新的数据;不存在时,则暂不处理,当创建writer时注意传递信息。

考虑到Writer和Reader间信息的传递,将cgManager设计为Writer的监听者,Reader作为cgManager的监听者,VectorWriter侧信息变化时,首先传递到cgManager,然后传递到Reader。同时cgManager负责协调Reader和Writer的早晚到达问题:这样进行传递使得设计略显复杂,于是演变为类pub/sub的架构,cgManager不作为writer的监听者,而是作为一个管理者。

相关文章

  • 设计模式之解耦

    设计模式经常考虑的一个问题是将对象间关系解耦,逼近开闭原则,使得代码容易扩展 最近设计到读写者间信息的传递,wri...

  • 设计模式

    设计模式要干的事情就是解耦。创建型模式是将创建和使用代码解耦,结构型模式是将不同功能代码解耦,行为型模式是将不同的...

  • 手写EventBus(观察者模式、源码阅读、反射)

    学习王争老师《设计模式之美》,观察者模式部分实现了一个简单的EventBus,太棒了,设计特别巧妙,其中的解耦思路...

  • 简单工厂模式”

    接上一篇“设计模式之单例模式”,本片主要简述简单工厂模式 二、工厂模式 简单工厂模式其实就是一个解耦的过程,当调用...

  • Java设计模式——组合模式

    Java设计模式之组合模式 回顾 之前分享了桥接模式,相信大家对解耦已经有了一个新的认识。 组合模式 简介 将对象...

  • Java设计模式——桥接模式

    Java设计模式之桥接模式 回顾 上一期分享了适配器模式,主要为了实现解耦 桥接模式 简介 桥接模式是对象的结构模...

  • 命令模式(Command)

    请求发送者与接收者解耦——命令模式(一)请求发送者与接收者解耦——命令模式(二)请求发送者与接收者解耦——命令模式...

  • 结构型 代理模式(文末有项目连接)

    1:什么是代理模式 2:没用代理模式时的实例 3:使用代理模式将其解耦(静态代理) 3:使用代理模式将其解耦(动态...

  • Netty理论三:Netty线程模型

    1、Reactor模式:NIO网络框架的典型模式 Reactor是网络编程中的一种设计模式,reactor会解耦并...

  • Django中MVC与MVT设计模式的区别系列之一

    MVC设计模式 MVC设计模式核心: 解耦,让不同的代码块之间降低耦合,增强代码的可扩展和可移植性,实现向后兼容。...

网友评论

      本文标题:设计模式之解耦

      本文链接:https://www.haomeiwen.com/subject/bcbfiftx.html