06 2023 档案
享元模式-13
摘要:### 概述 享元模式 (Flyweight Pattern) 又称轻量级模式。它使用共享技术有效支持大量细粒度对象的复用。 **优点**:大量减少内存中对象数量,相同/相似对象在内存中仅保留一份。 **缺点**:增加系统的复杂性。 ```java class External { String e
阅读全文
外观模式-12
摘要:### 概述 外观模式 (Facade Pattern) 又称门面模式。它为多个子系统的接口提供了一致的访问接口,定义了高层接口,使得子系统更易于使用。 **优点**:使子系统易于使用,实现客户和子系统的松耦合关系,不影响客户直接使用子系统类。 **缺点**:一定程度上违反“开闭原则”。 图示: !
阅读全文
装饰模式-11
摘要:### 概述 装饰模式 (Decorator Pattern) 又称包装器,与适配器模式别名一样,但使用的目的不同。它动态地给一个对象添加职责,相比于通过继承添加职责更加灵活。也称“油漆工”模式(视翻译而定)。 **优点**:扩展对象功能的同时提高了灵活性,符合“开闭原则”。 **缺点**:增加系统
阅读全文
组合模式-10
摘要:概述 组合模式 (Composite Pattern) 又称“整体-部分” (Part-Whole) 模式,它将多个对象组合成树状结构,表示整体-部分的层次,对不同对象的处理提供一致性。 优点:清楚地定义分层次的复杂对象。一致地对待所有对象。 缺点:设计难度高,难以限制复合对象中的元素类型。 abs
阅读全文
桥接模式-09
摘要:概述 桥接模式 (Bridge Pattern) 又称柄体 (Handle and Body) 模式、接口模式。它将可能有着继承关系的对象的抽象和实现分离,使得两者可以独立地变化。 优点:分离了抽象部分和实现部分,提高了灵活性和可扩展性,隐藏了实现的细节。 缺点:降低了系统可理解性,提高了设计难度,
阅读全文
适配器模式-08
摘要:概述 适配器模式 (Adapter Pattern) 将某个类的接口转换成客户希望的另一个接口,使接口不兼容的类也能够一起工作。又称包装器 (Wrapper)。既可以作为类结构型模式,也可以作为对象结构型模式。 优点:目标类和 adaptee 类解耦。提高了类的透明性和可复用性,灵活性和扩展性。 缺
阅读全文
单例模式-07
摘要:概述 单例模式 (Singleton Pattern) 又称单件模式、单态模式。确保一个类只能有一个实例,同时保证该类的实例只能在类内部创建,提供给整个系统使用。 优点:节约系统资源,提高系统性能。 缺点:扩展困难,一定程度上违反了“单一职责原则”。 class Singleton { privat
阅读全文
原型模式-06
摘要:概述 原型模式 (prototype pattern) 是将某个类实例作为原型,对这个原型进行复制得到相同类型的多个实例。 优点:当需要创建的类型比较复杂时,使用原型模式可以简化创建过程。 缺点:每个类都需要有一个克隆方法,对于深复制比较复杂。 Java 中,实现 Cloneable 接口可以使用
阅读全文
建造者模式-05
摘要:概述 建造者模式 (Builder Pattern) 又称生成器模式(视翻译而定)。该模式由一个抽象建造者类、多个具体建造者类、被创建的复杂类、指挥者(director)类构成。抽象建造者类定义被创建类的创建步骤;具体创建者类根据不同目的实现创建步骤;被创建类定义自身的复杂属性成员;指挥者类使用具体
阅读全文
抽象工厂模式-04
摘要:概述 抽象工厂 (abstract factory) 模式又称 Kit 模式,由一个抽象工厂类、多个抽象产品类以及这些抽象类的多个具体子类构成。每个具体工厂类可以创建每个抽象产品类的某个具体子类。 优点:高内聚低耦合,符合“开闭原则”。 缺点:难以添加新的产品类,这涉及到更改抽象工厂类,这个类的修改
阅读全文
工厂方法模式-03
摘要:概述 工厂方法模式 (Factory Method Pattern) 又称工厂模式、虚拟构造器 (Virtual Constructor) 模式、多态工厂 (Polymorphic Factory) 模式。这个模式由一个抽象工厂类、一个抽象产品类以及这两个抽象类各自的多个具体子类组成。继承自不同抽象
阅读全文
简单工厂模式(非 GoF 中模式)-02
摘要:概述 简单工厂模式(simple factory pattern) 又称静态工厂方法(static factory method) 模式。这个模式由一个工厂类、一个抽象产品类以及继承自这个抽象产品类的多个具体子类组成。工厂类中用于创建产品类的方法根据传入参数的不同返回不同类型的具体产品子类。 优点:
阅读全文
面向对象设计原则-01
摘要:概述 面向对象设计的原则是为了提高软件的可维护性和可复用性。最好是在保持可维护性的同时,提高可复用性。 单一职责原则 单一职责原则(Single Responsibility Principle, SRP):一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。 一个类承担的职责越多,越难
阅读全文