《设计模式之禅》笔记摘录
文章平均质量分 81
《设计模式之禅》笔记摘录
使二颗心免于哀伤
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《设计模式之禅》笔记摘录 - 22.解释器模式
解释器模式是一种用于定义语法规则并解释语言句子的设计模式,主要由抽象解释器、终结符表达式和非终结符表达式组成。其优点是扩展性强,修改语法规则方便;缺点是易引起类膨胀、调试复杂且效率低。适用于重复发生的简单语法解析场景,但重要模块中应避免使用。实际开发中可考虑Expression4J等开源解析工具替代自研解释器。该模式在大中型框架项目中偶有应用,如数据分析工具等。原创 2025-09-18 20:55:14 · 249 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 21.状态模式
什么是状态档式呢?其定义如下:Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.(当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类。状态模式的核心是封装,状态的变更引起了行为的变更,从外部看起来就好像这个对象对应的类发生了改变一样。状态模式的通用类图如图所示。State,抽象状态角色。原创 2025-09-17 20:07:16 · 658 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 20.访问者模式
访问者模式(Visitor Pattern)是一个相对简单的模式,其定义如下:Represent an operation to be performed on the elements of an object structure. Visitor lets you define a new operation without changing the classes of the elements on which it operates. (封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数原创 2025-09-05 21:26:00 · 284 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 19.备忘录模式
备忘录模式(Memento Pattern)提供了一种弥补真实世界缺陷的方法,让“后悔药”在程界序的世界中真实可行,其定义如下:Without violating encapsulation, capture and externalize an object's internal state so that the object can be restored to this state later. (在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。原创 2025-09-04 21:57:46 · 954 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 18.建造者模式
建造者模式(Builder Pattern)也叫做生成器模式,其定义如下:Separate the construction of a complex object from its representation so that the same ction process can create different representations. (将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。原创 2025-08-22 21:33:16 · 252 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 17.模板方法模式
模板方法模式(Template Method Pattern)是如此简单,以致让你感觉你已经能够掌握其精髓了。原创 2025-08-20 19:43:47 · 501 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 16.门面模式
门面模式(Facade Pattern)也叫做外观模式,是一种比较常用的封装模式,其定义如下:Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use. (要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。原创 2025-08-16 10:13:39 · 546 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 15.观察者模式
观察者模式(Observer Pattern)也叫做发布订阅模式(Publish/subscribe) ,它是一个在项目中经常使用的模式,其定义如下:Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.(定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于原创 2025-08-13 22:35:26 · 514 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 14.组合模式
组合模式是一种将对象组合成树形结构以表示部分-整体层次关系的设计模式,使客户端对单个对象和组合对象的使用具有一致性。该模式包含抽象构件(Component)、叶子构件(Leaf)和树枝构件(Composite)三个角色。其优点在于简化高层模块调用,便于节点扩展;缺点在于实现类直接使用可能违反依赖倒置原则。适用于树形菜单、文件管理等体现部分-整体关系的场景,有透明和安全两种实现方式。该模式广泛应用于页面导航菜单、XML解析等需要处理树形结构的领域。原创 2025-08-08 20:22:43 · 700 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 13.迭代器模式
迭代器模式是一种为容器提供遍历元素而又不暴露内部结构的模式,包含抽象迭代器、具体迭代器、抽象容器和具体容器四个角色。由于现代编程语言已内置迭代器实现(如Java的Iterator接口),单独实现该模式已无必要,它已成为基础工具融入各种语言和框架中。在Java开发中,建议直接使用语言提供的迭代器功能,无需自行实现这一模式。原创 2025-08-06 20:31:35 · 462 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 12.适配器模式
适配器模式(Adapter Pattern)的定义如下:Convert the interface of a class into another interface clients expect. Adapter lets classes work together that couldnt otherwise because of incompatible interfaces. (将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。原创 2025-08-01 20:17:16 · 611 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 11.策略模式
策略模式(Strategy Pattern)是一种比较简单的模式,也叫做政策模式(Policy Pattern)。其定义如下:Define a family of algorithms, encapsulate each one, and make them interchangeable. (定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式的通用类图,如图所示。原创 2025-07-30 20:14:45 · 725 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 10.装饰模式
装饰模式(Decorator Pattern)是一种比较常见的模式,其定义如下:Attach additional responsibilities to an object dynamically keeping the same interface. Decorators provide a flexible alternative to subclassing for extending functionality.(动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。原创 2025-07-25 20:01:07 · 584 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 9.责任链模式
责任链模式定义如下:Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it. (使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合原创 2025-07-23 22:44:02 · 471 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 8.命令模式
命令模式是一个高内聚的模式,其定义为:Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.(将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式的通用类图如图所示。原创 2025-07-18 21:44:36 · 568 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 7.中介者模式
中介者模式的定义为:Define an object that encapsulates how a set of objects interact.Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently. (用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互原创 2025-07-16 20:56:39 · 676 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 6.原型模式
原型模式(Prototype Pattern)的简单程度仅次于单例模式和迭代器模式。正是由于简单,使用的场景才非常地多,其定义如下:Specify the kinds of objects to create using a prototypical instance, and create new objects by copying his prototype. (用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原创 2025-07-11 19:20:40 · 418 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 5.代理模式
代理模式(Proxy Pattern)是一个使用率非常高的模式,其定义如下:Provide a surrogate or placeholder for another object to control access to it. (为其他对象提供一种代理以控制对这个对象的访问。代理模式的通用类图:代理模式也叫做委托模式,它是一项基本设计技巧。许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式,而且在日常的应用中,代理模式可以提供非常好的访问控制。原创 2025-07-09 20:48:00 · 1061 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 4.抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是一种比较常用的模式,其定义如下:Provide an interface for creating families of related or dependent objects without specifying ir concrete classes.(为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的体类。原创 2025-07-05 16:17:24 · 628 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 3.工厂方法模式
工厂方法模式使用的频率非常高,在我们日常的开发中总能见到它的身影。其定义为:Define an interface for creating an object, but let subclasses decide which class to instantiate..Factory Method lets a class defer instantiation to subclasses.(定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。原创 2025-07-04 21:23:28 · 956 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 2.单例模式
单例模式是一种创建型设计模式,确保类只有一个实例并提供全局访问点。其优点包括减少内存开销、优化资源占用和简化共享资源访问,特别适用于频繁创建销毁对象或资源消耗大的场景。但存在扩展困难、测试不便等问题。应用场景包括唯一序列号生成、共享计数器、工具类等。使用时需注意线程同步和对象复制问题,还可扩展为有上限的多例模式。在Spring框架中,Bean默认采用单例模式以方便生命周期管理。原创 2025-07-02 22:41:48 · 599 阅读 · 0 评论 -
《设计模式之禅》笔记摘录 - 1.六大设计原则
本文介绍了软件设计中的六大原则:单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则和开闭原则。单一职责原则强调类或接口应只有一个职责;里氏替换原则要求子类能够替换父类而不影响程序行为;依赖倒置原则提倡高层模块和低层模块都应依赖抽象;接口隔离原则建议接口应尽量细化,避免臃肿;迪米特法则主张类间应保持低耦合,减少不必要的依赖;开闭原则则强调系统应对扩展开放,对修改关闭。这些原则共同指导开发者设计出高内聚、低耦合、易于维护和扩展的软件系统。原创 2025-05-18 21:34:14 · 1148 阅读 · 0 评论
分享