| 程序包 | 说明 |
|---|---|
| cn.ujava.design.abstractfactory |
抽象工厂模式
示例:通过定义一个创建对象的接口来创建对象,但将具体实现的决定留给子类来决定。
|
| cn.ujava.design.adapter |
适配器模式
示例:我们有一个目标接口 Target ,一个源接口 Adaptee 和一个适配器类 Adapter 。
|
| cn.ujava.design.bridge |
桥接模式
示例:它允许我们在运行时动态地改变 Shape 类的颜色而不用影响到 Shape 子类,同时也允许我们增加新的颜色和形状类而无需改变其它现有的类。
|
| cn.ujava.design.builder |
建造者模式
示例:我们创建了Car类作为我们想要构建的复杂对象。
|
| cn.ujava.design.command |
命令模式
示例:文件创建和删除
|
| cn.ujava.design.composite |
组合模式
示例:其中我们使用一个抽象类Component来表示树形结构中的节点,包括叶节点和组合节点。
|
| cn.ujava.design.decorator |
装饰者模式
示例:我们有一个 Pizza 接口,它定义了Pizza 的核心行为,包括其描述和成本。
|
| cn.ujava.design.facade |
外观模式
示例:我们有三个子系统类: CPU , Memory 和 HardDrive 。
|
| cn.ujava.design.factory |
工厂模式
示例:定义一个静态方法,根据传入的参数创建具体的产品类对象
|
| cn.ujava.design.filter |
过滤器模式
示例:
Java过滤器设计模式的基本实现方法。
|
| cn.ujava.design.flyweight |
享元模式
示例:我们有一个 Shape 接口,它定义了一个 draw() 方法,用于绘制图形。
|
| cn.ujava.design.interpreter |
解释器模式
示例:我们定义了两个终结符表达式(NumberExpression)和一个非终结符表达式(AddExpression),用于表示加法操作。
|
| cn.ujava.design.iterator |
迭代器模式
示例:
|
| cn.ujava.design.mediator |
中介者模式
示例:Mediator接口定义了send()方法,用于处理对象之间的交互。
|
| cn.ujava.design.memento |
备忘录模式
示例:Originator类表示原始对象,它包含需要保存的状态。
|
| cn.ujava.design.nullobject |
空对象模式
示例:我们定义了一个接口User,它表示一个用户,并包含两个方法:getName()和hasAccess()。
|
| cn.ujava.design.observer |
观察者模式
示例:定义了抽象主题接口(Subject)和抽象观察者接口(Observer),用于表示主题和观察者对象。
|
| cn.ujava.design.prototype |
原型模式
示例:Shape是一个抽象类,它实现了Cloneable接口并重写了clone()方法。
|
| cn.ujava.design.proxy |
代理模式
示例:静态代理、jdk动态代理、cglib动态代理
|
| cn.ujava.design.responsibility |
责任链模式
示例:如何创建一个处理器链,并将请求沿着链传递,直到有一个处理程序处理它为止。
|
| cn.ujava.design.singleton |
单例模式
示例:饿汉式、懒汉式双检锁、内部静态类、枚举、直接枚举
|
| cn.ujava.design.state |
状态模式
示例:
我们定义了一个状态接口State和两个具体状态类ConcreteState1和ConcreteState2。
|
| cn.ujava.design.strategy |
策略模式
示例:
PaymentStrategy 接口定义了一种支付方式,并包含一个 pay 方法,该方法接受一个金额参数。
|
| cn.ujava.design.template |
模版模式
示例:
Game类是一个抽象类,定义了一个play()方法作为模板方法。
|
| cn.ujava.design.visitor |
访问者模式
示例:实现一个简单的计算器,它可以对表达式进行计算。
|
Copyright © 2024. All rights reserved.