Java核心库中的GoF设计模式示例

oop - Java核心库中GoF设计模式的示例 - 堆栈溢出 (stackoverflow.com)

+250

您可以在维基百科中找到许多设计模式的概述。它还提到了GoF提到的模式。我将在这里总结它们,并尝试分配尽可能多的模式实现,这些实现可以在Java SE和Java EE API中找到。


创建模式

抽象工厂(可通过返回工厂本身的创建方法识别,而这些方法又可用于创建另一种抽象/接口类型)

生成器(可通过返回实例本身的创建方法识别)

工厂方法(可通过返回抽象/接口类型实现的创建方法识别)

原型(可通过返回具有相同属性的自身不同实例的创建方法识别)

单例可通过每次返回相同实例(通常是自身)的创建方法识别)


结构模式

适配器(可通过创建方法识别,该方法采用不同抽象/接口类型的实例并返回自己的/另一个抽象/接口类型的实现,该实现修饰/覆盖给定实例)

Bridge(可通过创建方法识别,该方法采用不同抽象/接口类型的实例并返回自己的抽象/接口类型的实现,该实现委托/使用给定实例)

  • 还没有想到。一个虚构的例子是返回一个不可修改的链接映射,该映射不会克隆项目,而是使用它们。然而,java.util.Collections#newSetFromMap() 和 singletonXXX() 方法很接近。new LinkedHashMap(LinkedHashSet<K>, List<V>)

复合(可通过行为方法识别,将相同抽象/接口类型的实例转换为树结构)

装饰器(可通过采用相同抽象/接口类型的实例的创建方法识别,从而添加额外的行为)

立面(可通过内部使用不同独立抽象/接口类型实例的行为方法识别)

蝇量级(可通过返回缓存实例的创建方法识别,有点“多吨”的想法)

代理(可通过返回给定抽象/接口类型的实现的创建方法识别,而创建方法又委托/使用给定抽象/接口类型的不同实现)


行为模式

责任链(可通过行为方法识别,该行为方法(间接)在队列中具有相同抽象/接口类型的另一个实现中调用相同的方法)

命令(可通过抽象/接口类型中的行为方法识别,该行为方法调用不同抽象/接口类型的实现中的方法,该抽象/接口类型在创建过程中已由命令实现封装)

解释(可通过返回给定实例/类型的结构不同的实例/类型的行为方法识别;请注意,解析/格式化不是模式的一部分,确定模式以及如何应用它是)

迭代器(可通过从队列中按顺序返回不同类型的实例的行为方法识别)

中介器(可通过采用不同抽象/接口类型(通常使用命令模式)的实例的行为方法识别,该实例委托/使用给定实例)

Memento(可通过内部更改整个实例状态的行为方法识别)

观察者(或发布/订阅)(可通过行为方法识别,该行为方法在另一个抽象/接口类型的实例上调用方法,具体取决于自己的状态)

状态(可通过行为方法识别,该行为方法根据实例的状态改变其行为,可以在外部控制)

策略(可通过抽象/接口类型中的行为方法识别,该方法调用不同抽象/接口类型的实现中的方法,该方法已作为方法参数传递到策略实现中)

模板方法(可通过已经具有由抽象类型定义的“默认”行为的行为方法识别)

访客(可通过两种不同的抽象/接口类型识别,它们定义了将彼此抽象/接口类型采用的方法;一个实际上调用另一个的方法,另一个在其上执行所需的策略)

tools | Albert World (008ct.top)

posted @ 2023-08-11 10:29  CharyGao  阅读(42)  评论(0)    收藏  举报