首页 > 其他分享 >设计模式-纯文字描述

设计模式-纯文字描述

时间:2023-08-04 09:56:26浏览次数:35  
标签:publisher 定义 多个 观察者 文字描述 subscribers 设计模式

设计模式在很多面试题中经常出现,同时,在写大型项目中,设计模式可以让代码更简洁,架构更合理,所以是我们必须要掌握的。

 

1、观察者模式

观察者模式是一种行为设计模式, 允许你定义一种订阅机制, 可在对象事件发生时通知多个 “观察” 该对象的其他对象。一般需要以下几步:

1、定义多个 events

2、定义多个 subscribers:subscriber 继承统一的接口(比如update()方法)

3、定义一个publisher:定义subscribe 、unsubscribe、notify等方法,并且成员有一个hashmap,对应不同的event有多个subscribers。

4、定义一个类Entity,定义多个行为函数,同时成员有publisher,然后通过publisher来绑定某个event到publisher的subscribers上。

这样,当Entity有某个行为调用时,则通过publisher间接调用subscriber的update函数。

 

实际案例:在界面点击了一个按钮,需要多个地方同时更新或加载,这时候就需要观察者模式。

 

2、装饰器模式

 

标签:publisher,定义,多个,观察者,文字描述,subscribers,设计模式
From: https://www.cnblogs.com/itfanr/p/17605092.html

相关文章

  • 设计模式原则之:开闭原则原则
     类似于做一个多支付的业务,提供一个service来进行支付、查询操作,具体的实现类如:WeChat、AliPay等实现service服务,来进行服务的调用,如果后续增加Paypal支付,则由提供方实现service即可使用方无需动代码引发开闭原则的实例/***@description:引发开闭原则的示例*@author:......
  • 设计模式原则之:里氏替换原则
    示例已发推论 /***@description:示例引发里氏替换原则的实现*@author:abel.he*@date:2023-08-03**/publicclassTest1{publicstaticvoidmain(String[]args){Personperson=newPerson();System.out.println("9+2="+per......
  • 设计模式 C++
    参考博客:https://blog.csdn.net/weixin_45712636/article/details/124328504参考视频:https://www.bilibili.com/video/BV1Np4y1z7BU?p=1&vd_source=fce372ba0aa0bf9ed76094e3192b7015参考文档:https://bright-boy.gitee.io/technical-notes/#/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%......
  • 【设计模式】享元模式Flyweight:通过共享对象减少内存加载消耗
    (目录)享元模式Flyweight:通过共享对象减少内存加载消耗享元模式的用意享元模式以共享的⽅法⾼效地⽀持⼤量的细粒度对象,享元对象能做到共享的关键是区分内蕴状态和外蕴状态。⼀个内蕴状态是存储在享元对象内部的,并且是不会随环境改变⽽有所不同的,因此⼀个享元可以具有内蕴状态......
  • 【设计模式】装饰器模式Decorator:在基础组件上扩展新功能
    (目录)装饰器模式看上去和适配器模式、桥接模式很相似,都是使用组合方式来扩展原有类的,但其实本质上却相差甚远呢。简单来说,适配器模式侧重于转换,而装饰模式侧重于动态扩展;桥接模式侧重于横向宽度的扩展,而装饰模式侧重于纵向深度的扩展。原理装饰模式的原始定义是:允许动态地向......
  • PHP设计模式汇总
    PHP设计模式汇总没想到啊,没想到。自己竟然坚持了下来,完成了设计模式深入的学习,并且输出了23篇用php演示的设计模式的文章。但这不是最主要的,更深层次的收获是顺便背下了这些模式的定义及类图。在深入学习了设计模式之后,对Laravel等框架的架构理解也更清楚明了了。就像我在很多模式......
  • Java设计模式--装饰器模式
    Java设计模式--装饰器模式一、问题背景在项目场景中,有这样一个需求,需要对录入的加班进行规则校验,包括但不限于,对加班的录入时间进行检查,对录入的加班类型进行检查,对加班日期的班次进行对比检查,对潜入系统的时长进行对比检查等等。具体来说,就是对一条加班记录,进行多种规则的检查......
  • 【设计模式】适配器模式Adapter:处理不同 API 接口的兼容性
    (目录)适配器模式适配器模式(AdapterPattern)是作为两个不兼容的接⼝之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独⽴接⼝的功能。在某些时候,客户期望获得某种功能接⼝但现有的接⼝⽆法满⾜客户的需求,例如美国的正常供电电压为110V,⼀个中国⼈带了⼀款中国制造......
  • Java设计模式
    #Java设计模式GoF(最先开始着手进行设计模式分类整理工作)对设计模式的定义是:设计模式是在特定的环境下为解决某一通用软件设计问题提供的一套定制的解决方案,该方案描述了对象和类之间的相互作用。一、面向对象设计的七大原则1.1单一职责原则定义:一个对象应该只包含单一的职......
  • JDK中有关23个经典设计模式
    Structural(结构模式)Adapter:把一个接口或是类变成另外一种。java.util.Arrays#asList()javax.swing.JTable(TableModel)java.io.InputStreamReader(InputStream)java.io.OutputStreamWriter(OutputStream)javax.xml.bind.annotation.adapters.XmlAdapter#marshal()javax.......