定义 当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。 实现 思路: 指定发布者; 给发布者添加一个缓存列表,用于存放回调函数以便通知订阅者; 最后发布消息的时候,发布者会遍历这个缓存列表,依次触发里面存放的…
分类:设计模式
PHP设计模式之迭代器模式
概念 迭代器模式(Iterator),又叫做游标(Cursor)模式。提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。 当你需要访问一个聚合对象,而且不管这些对象是什么都需要遍历的时候,就应该考…
组合模式(Composite)
组合模式 一.组合模式 1.1 定义 将对象组合成树形结构以表示“部分-整体”的层次结构. 组合模式使得用户对单个对象和组合对象的使用具有一致性. 二.实现 2.1 创建节点类 public class Node { p…
抽象工厂模式(Abstract Factory)
抽象工厂模式 概念 抽象工厂模式是工厂模式的升级,用来创建一组相关或相互依赖的对象。 角色 1.抽象工厂角色 2.具体工厂角色 3.产品接口或抽象产品角色 4.具体产品角色 角色对应关系 1.多个具体工厂继承自抽象工厂;…
golang 设计模式之选项模式
有时候一个函数会有很多参数,为了方便函数的使用,我们会给希望给一些参数设定默认值,调用时只需要传与默认值不同的参数即可,类似于 python 里面的默认参数和字典参数,虽然 golang 里面既没有默认参数也没有字典参数…
单例模式(Singleton)
一般实现 创建执行方法 public class WithoutSingleton { public static void withoutSingletonInfo(WithoutSingleton withoutSi…
Python设计模式
简单工厂模式 工厂模式有一种非常形象的描述,建立对象的类就如一个工厂,而需要被建立的对象就是一个个产品;在工厂中加工产品,使用产品的人,不用在乎产品是如何生产出来的。 从软件开发的角度来说,这样就有效的降低了模块之间的耦…
java面试题:java中的单例设计模式及两种实现方法的代码举例
Java面试时经常会问到关于单例设计模式,因为它能考察的知识点较多且在开发中经常用到。那我就来说一说我对于单例设计模式的一些浅见。首先,在Java中,什么是单例呢?就是保证类在内存中只有一个对象。那么问题来了,如何才能保…
【设计模式】空对象设计模式学习
解决问题 之前看设计模式的书并没有看到过Null Object设计模式, 所谓空对象设计模式,实际上是为了规避客户端获取一个对象后(比如是指针对象),在后面调用的所有地方都要判空,否则调用方法(或者解引用)那可能就有问题…
JS设计模式入门和框架中的实践
本文为饥人谷讲师slashhuang原创文章 在编写JS代码的过程中,运用一定的设计模式可以让我们的代码更加优雅、灵活。 下面笔者就结合诸如redux的subscribe、ES6的class、vue里面的$dispatc…
有趣的 DApp 设计模式:First-class Asset
本篇文章的作者是 Jan,文章阐述了 Cell 模型中支持的一种非常有趣的 DApp 设计模式:First-class Asset,它让加密资产变成区块链中的「一等公民」。 喜欢函数式编程的工程师应该很熟悉一个名词:Fi…
一起学设计模式 - 适配器模式
适配器模式(Adapter Pattern)属于结构型模式的一种,把一个类的接口变成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作… <!– more &…