创建型设计模式
单例模式
工厂模式
工厂方法模式
工厂方法模式定义了一个创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。
说明
- 抽象产品类(
AbstractProduct
):定义了产品的抽象方法use()
,具体产品类需要实现该方法。 - 具体产品类(
ConcreteProductA
、ConcreteProductB
):实现了抽象产品类的use()
方法,代表具体的产品。 - 抽象工厂类(
AbstractFactory
):定义了创建产品的抽象方法createProduct()
,具体工厂类需要实现该方法。 - 具体工厂类(
ConcreteFactoryA
、ConcreteFactoryB
):实现了抽象工厂类的createProduct()
方法,负责创建具体的产品。 - 客户端类(
Client
):通过抽象工厂和抽象产品编程,不直接依赖具体的工厂和产品。
抽象工厂模式
抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
说明
- 抽象产品族(
AbstractProductA
、AbstractProductB
):分别定义了产品族 A 和产品族 B 的抽象方法,具体产品类需要实现这些方法。 - 具体产品类(
ConcreteProductA1
、ConcreteProductA2
、ConcreteProductB1
、ConcreteProductB2
):实现了对应抽象产品族的抽象方法,代表具体的产品。 - 抽象工厂类(
AbstractFactory
):定义了创建产品族 A 和产品族 B 的抽象方法,具体工厂类需要实现这些方法。 - 具体工厂类(
ConcreteFactory1
、ConcreteFactory2
):实现了抽象工厂类的方法,负责创建一组相关的具体产品。 - 客户端类(
Client
):通过抽象工厂和抽象产品编程,不直接依赖具体的工厂和产品。
原型模式
原型模式是一种创建型设计模式,它允许通过复制现有对象来创建新对象,而无需知道对象的具体创建过程。
说明
- 抽象原型类(
Prototype
):定义了一个克隆方法clone()
,所有具体原型类都需要实现该方法。 - 具体原型类(
ConcretePrototype
):实现了Prototype
接口的clone()
方法,负责复制自身。它包含一个字段field
以及相应的构造方法和获取字段的方法。 - 客户端类(
Client
):通过调用原型对象的clone()
方法来创建新对象,依赖于抽象原型类和具体原型类。
建造者模式
建造者模式是一种创建型设计模式,它将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。
说明
- 产品类(
Product
):表示要构建的复杂对象,包含多个部分(partA
、partB
、partC
),提供了设置这些部分的方法和展示产品信息的方法。 - 抽象建造者类(
Builder
):定义了构建产品各个部分的抽象方法(buildPartA()
、buildPartB()
、buildPartC()
)以及获取最终产品的方法getResult()
。 - 具体建造者类(
ConcreteBuilder
):实现了抽象建造者类的方法,负责具体的构建过程,并持有一个产品对象。 - 指挥者类(
Director
):负责指挥建造过程,调用建造者的方法来构建产品,依赖于抽象建造者类。 - 客户端类(
Client
):创建指挥者和具体建造者对象,并调用指挥者的construct()
方法来构建产品,依赖于指挥者类和抽象建造者类。
Java设计模式 文章被收录于专栏
设计模式是软件开发中针对反复出现的问题所总结归纳出的通用解决方案,它可以帮助开发者更高效地构建软件系统,提升代码的可维护性、可扩展性和可复用性。