平台常用设计模式
发布/订阅设计模式(观察者模式)
JetLinks平台的消息处理中心(DeviceMessageConnector
)类,使用发布/订阅设计模式将设备消息发布至消息总线内(EventBus
),规则引擎(RuleEngine
)、设备数据写入时序数据库(TimeSeriesMessageWriterConnector
),则订阅消息总线内的数据异步对这些数据做业务流程上的处理。
发布/订阅设计模式是一种常用的软件架构模式,也称为观察者模式或消息传递模式。
它定义了一种发布者和订阅者之间的通信方式,其中发布者负责发送消息,而订阅者负责接收和处理消息。
发布/订阅模式可以用于解决如下问题:
1、解耦:发布/订阅模式可以将发布者和订阅者之间解耦,从而降低系统的复杂度和维护成本。
2、扩展性:通过发布/订阅模式,可以轻松地增加新的订阅者和发布者,从而实现系统的扩展性。
3、异步通信:发布/订阅模式支持异步通信,发布者可以将消息发送出去后立即返回,无需等待订阅者的响应。
4、可靠性:通过将消息发送到特定的主题,可以确保只有订阅了该主题的订阅者才能接收到消息,从而提高消息传递的可靠性和安全性。
5、转换和路由:通过发布/订阅模式,可以对消息进行转换和路由,消息可以被多个订阅者接收并进行处理,从而实现更加灵活的消息传递。
代理模式
平台接口权限、数据权限、访问行为、日志记录等部分使用AOP切面编程实现了相似的行为逻辑。
代理模式是一种结构型设计模式,它为其他对象提供了一种代理以控制对这个对象的访问。通俗点说,代理模式就是在访问对象时引入一个代理对象,并由代理对象控制对真实对象的访问。
1、代理模式可以增强系统的安全性。代理对象可以控制对真实对象的访问权限,从而保护对象不被非法访问。
2、代理模式可以降低系统的耦合度。代理对象可以隐藏真实对象的实现细节,从而达到解耦的目的。
3、代理模式可以提高系统的性能。如果真实对象比较耗时或资源消耗比较大,代理对象可以在必要时进行缓存和延迟加载,从而提高系统的性能表现。
策略模式
策略模式是一种行为设计模式,它允许在运行时选择算法的行为。通过将一系列算法封装到单独的对象中,并使它们可以在不改变其外部行为的情况下相互替换,从而实现了算法的灵活性。这种灵活性可以通过运行时动态地选择不同的算法来达到最佳性能或其他目标。在协议包开发时(如上报多种报文信息信息时),推荐使用策略模式。
责任链模式
责任链模式是一种行为设计模式,用于将多个对象组合成一个链以依次处理请求。当一个请求进入这个链时,每个对象都有机会对请求进行处理。如果一个对象无法处理请求,它会将请求传递给下一个对象,直到有一个对象处理请求为止。
平台的数据权限使用的责任链模式来处理资产权限绑定、以及资产数据查询数据可见范围。具体可参考CompositeAssetsHolder
类。
原文链接:https://hanta.yuque.com/px7kg1/nn1gdr/vnhqwkkitee2m5bb
标签:订阅,对象,代理,模式,联网,发布者,JetLinks,设计模式 From: https://www.cnblogs.com/heyi-77/p/17636756.html