设计模式学习笔记(二)-创建者模式(Creational Pattern)

创建者模式(Creational Pattern)

  1. 简单工厂模式(Simple Factory)
    • 又叫静态工厂方法模式,不属于23种GOF设计模式之一
    Factory.creteObject(objectName);
  2. 工厂方法模式(工厂模式)(Factory Method)
    • 一个类不知道它所需要的对象的类:客户端不需要知道具体产品类的类名,只需要知道所对应的工厂即可
    • 一个类通过其子类来指定创建哪个对象
    • 将创建对象的任务委托给多个工厂子类中的某一个,需要时再动态指定子类
    FactoryA.creteObject(); 
    FactoryB.creteObject(); 
  3. 抽象工厂模式(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();
    }
  4. 建造者模式(生成器模式)(Builder)
    • 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
    • 将复杂对象的构建与对象的表现分离开来,使得同样的构建过程可以创建出不同的表现
    //包含四个角色:
    //Builder:抽象建造者;ConcreteBuilder:具体建造者;
    //Director:指挥者;Product:产品角色
    ConcreteBuilder builder = new ConcreteBuilder();
    Director  director = new Director();
    director.setBuilder(builder);
    Product pd =  director.constuct();
    pd.show();
  5. 原型模式(Prototype)
    • 定义:使用原型实例指定将要创建的对象类型,通过复制这个实例创建新的对象
    • 应用:Java利用序列化和反序列化流实现深克隆
  6. 单例模式(Singleton)
    • 单例类的职责过重,在一定程度上违背了“单一职责原则”。
      因为单例类既充当了工厂角色,提供了工厂方法,同时又充当了产品角色,包含一些业务方法,将产品的创建和产品的本身的功能融合到一起

猜你喜欢

转载自www.cnblogs.com/kintanx/p/11432445.html
今日推荐