设计模式学习笔记(二)-创建者模式(Creational Pattern)
其他
2019-08-29 23:04:43
阅读次数: 0
创建者模式(Creational Pattern)
- 简单工厂模式(Simple Factory)
- 又叫静态工厂方法模式,不属于23种GOF设计模式之一
Factory.creteObject(objectName);
- 工厂方法模式(工厂模式)(Factory Method)
- 一个类不知道它所需要的对象的类:客户端不需要知道具体产品类的类名,只需要知道所对应的工厂即可
- 一个类通过其子类来指定创建哪个对象
- 将创建对象的任务委托给多个工厂子类中的某一个,需要时再动态指定子类
FactoryA.creteObject();
FactoryB.creteObject();
- 抽象工厂模式(Kit模式)(Abstract Factory)
- 提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类
(工厂模式只生成一个对象,抽象工厂模式生成一组相关的对象)
- 当抽象工厂模式中每一个具体工厂类只创建一个产品对象,也就是只存在一个产品等级结时,抽象工厂模式退化成工厂方法模式;
- 当工厂方法模式中抽象工厂与具体工厂合并,提供一个统一的工厂来创建产品对象,并将创建对象的工厂方法设计为静态方法时,工厂方法模式退化成简单工厂模式
interface PcFactory{
Mouse createMouse();
Keyboard createKeyboard();
}
class HpFactory implements PcFactory{
Mouse createMouse() return HpMouse();
Keyboard createKeyboard() return HpKeyboard();
}
class DellFactory implements PcFactory{
Mouse createMouse() return DellMouse();
Keyboard createKeyboard() return DellKeyboard();
}
- 建造者模式(生成器模式)(Builder)
- 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
- 将复杂对象的构建与对象的表现分离开来,使得同样的构建过程可以创建出不同的表现
//包含四个角色:
//Builder:抽象建造者;ConcreteBuilder:具体建造者;
//Director:指挥者;Product:产品角色
ConcreteBuilder builder = new ConcreteBuilder();
Director director = new Director();
director.setBuilder(builder);
Product pd = director.constuct();
pd.show();
- 原型模式(Prototype)
- 定义:使用原型实例指定将要创建的对象类型,通过复制这个实例创建新的对象
- 应用:Java利用序列化和反序列化流实现深克隆
- 单例模式(Singleton)
- 单例类的职责过重,在一定程度上违背了“单一职责原则”。
因为单例类既充当了工厂角色,提供了工厂方法,同时又充当了产品角色,包含一些业务方法,将产品的创建和产品的本身的功能融合到一起
转载自www.cnblogs.com/kintanx/p/11432445.html