摘要: 简介 原型模式(Prototype Pattern)是一种创建型设计模式,使你能够复制已有对象,而无需使代码依赖它们所属的类,同时又能保证性能。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。 如果你需要复制一些对象,同时又希望代码独立于这 阅读全文
posted @ 2023-04-24 09:57 刀法如飞 阅读(275) 评论(0) 推荐(1)
摘要: 简介 观察者模式(Observer Pattern)是一种行为型模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 观察者模式使用三个类Subject、Observer和Client。Subject对象带有绑定观察者到Client对象和从 阅读全文
posted @ 2023-04-21 16:30 刀法如飞 阅读(273) 评论(0) 推荐(0)
摘要: 简介 备忘录模式(Memento Pattern)是一种结构型设计模式。这种模式就是在不破坏封装的条件下,将一个对象的状态捕捉(Capture)住,并放在外部存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。备忘录模式常常与命令模式和迭代子模式一同使用。 备忘录模式的角色有三个:备忘 阅读全文
posted @ 2023-04-20 11:47 刀法如飞 阅读(119) 评论(0) 推荐(0)
摘要: * 中介者模式是一种行为型设计模式,它可以用来减少类之间的直接依赖关系, * 将对象之间的通信封装到一个中介者对象中,从而使得各个对象之间的关系更加松散。 * 在中介者模式中,对象之间不再直接相互交互,而是通过中介者来中转消息。 阅读全文
posted @ 2023-04-19 18:55 刀法如飞 阅读(99) 评论(0) 推荐(0)
摘要: 简介 迭代器模式(Iterator Pattern),是一种结构型设计模式。给数据对象构建一套按顺序访问集合对象元素的方式,而不需要知道数据对象的底层表示。 迭代器模式是与集合共存的,我们只要实现一个集合,就需要同时提供这个集合的迭代器,就像Java中的Collection,List、Set、Map 阅读全文
posted @ 2023-04-17 12:13 刀法如飞 阅读(344) 评论(2) 推荐(1)
摘要: 简介 解释器模式(Interpreter Pattern)是一种行为型设计模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式常被用在 SQL 解析、符号处理引擎等。 解释器模式常用于对简单语言的编译或分析实例中,为了掌握好它的结构与实现,必须先了解编译原理中的“文法、句子、语法 阅读全文
posted @ 2023-04-12 17:57 刀法如飞 阅读(160) 评论(0) 推荐(0)
摘要: 【享元设计模式详解】C/Java/JS/Go/Python/TS不同语言实现 简介 享元模式(Flyweight Pattern),是一种结构型设计模式。主要用于减少创建对象的数量,以减少内存占用和提高性能。它摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,让你能在有限的内存容量中载入更多对象。 当程序需要生成数量巨大的相似对象时,可能对内存有大量损耗 阅读全文
posted @ 2023-04-10 18:21 刀法如飞 阅读(85) 评论(0) 推荐(0)
摘要: 简介 外观模式(Facade Pattern),也叫门面模式,是一种结构型设计模式。它向现有的系统添加一个高层接口,隐藏子系统的复杂性,这个接口使得子系统更加容易使用。 如果你需要一个指向复杂子系统的直接接口,且该接口的功能有限,则可以使用外观模式。或者需要将子系统组织为多层结构,可以使用外观。 作 阅读全文
posted @ 2023-04-07 15:41 刀法如飞 阅读(111) 评论(0) 推荐(0)
摘要: 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern),是一种结构型模式。这种模式允许使用不同的标准条件来过滤一组对象,并通过逻辑运算的方式把各条件连接起来,它结合多个标准来获得单一标准。 例子将创建一个 Person 对象、Criteria 接口和实现了该接口的实体类,来过滤 Person 对象的列表。Test 类使用 Criteria 对象,基于各种标准和它们的结合来过滤 Person 对象的列表。 阅读全文
posted @ 2023-04-06 12:06 刀法如飞 阅读(433) 评论(0) 推荐(0)
摘要: 简介 装饰器模式(Decorator Pattern)是一种结构型设计模式。将对象放入到一个特殊封装的对象中,为这个对象绑定新的行为,具备新的能力,同时又不改变其原有结构。 如果你希望在无需修改代码的情况下即可使用对象,且希望在运行时为对象新增额外的行为,可以使用装饰模式。或者你用继承来扩展对象行为 阅读全文
posted @ 2023-04-04 17:27 刀法如飞 阅读(292) 评论(0) 推荐(0)