美文网首页
GoF - 创建型模式

GoF - 创建型模式

作者: _Walker__ | 来源:发表于2021-11-20 01:12 被阅读0次

生成器模式(Builder)

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

这里的“表示”就是指其创建出来的“产品对象”。

  • Builder用于创建复杂对象,这里复杂对象指它有多个组成部分(部件)。Builder为必要的部件提供创建接口,由使用者来调用。
  • 部件的创建接口有两个职责:创建部件、将部件组装进最终的产品
  • Builder为客户屏蔽了部件的细节,客户只用关心是否要创建某个部件,不需要关注创建出来的部件具体是什么

同其他创建型模式的差别:

  • Builder将一步步创建部件的过程交给客户控制,使其可以进行更精细的控制
  • Builder在最后一步,将最终产返回

原型模式(Prototype)

用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象

  • Prototype的本质是通过clone操作,用一个对象生成另一个对象
  • 当一个类的实例,只会有少数几种不同状态的组合时,很适合用Prototype。但这种情况下,复用对象应该会比,创建一批完全相同的对象更合适。
  • 在类是“第一类对象”的语言(如: Python)中,类本身就像是一个Prototype
  • 在使用工厂类的模块中,适当将工厂与Prototype结合可以减少工厂的层次。一个具体工厂,就能创建多种产品(产品的层次不会改变)
class Product { ... }
class ProductA : Product { ... }
class ProductB : Product { ... }

// 工厂
class Factory
{
    private Product ;
    
    public Factory(Product p)
    {
        _p = p;
    }

    Product Create(int someArg)
    {
        Product rst = p.Clone();
        rst.Init(someArg);
        // do somthing else~
        return rst;
    }
}

// 创建示例
Factory fa = new Factory(new ProductA());
fa.Create(666);
Factory fb = new Factory(new ProductB());
fb.Create(888);

创建型模式还有工厂跟单例,在之前文章列过了。
GoF基础设计模式(Head First篇)
GoF - 工厂模式(Factory Pattern)

相关文章

  • 手绘设计模式结构图

    GoF的设计模式一共23个,可以分为3大类:创建型、结构型和行为型,这篇文章主要讨论创建型。 创建型的设计模式包括...

  • 设计模式-构建者模式

    概念 建造者模式(英:Builder Pattern)是一种创建型设计模式,又名:生成器模式。GOF 给建造者模式...

  • 设计模式

    23种设计模式 工厂方法(创建型:解决对象创建问题的) 工厂方法:工厂模式不属于GOF设计模式,也不属于JavaE...

  • 设计模式之结构型模式(上)

    GoF 归纳整理的23个设计模式依据其目的可以分为创建型(Creational)、结构型(Structural)和...

  • 《C#设计模式》-简单工厂模式

    简单工厂模式是最简单的设计模式之一,它虽然属于GoF的23种设计模式,但是应用也较为频繁,同时它也是学习其他创建型...

  • 知识总结:设计模式总结(C++和Python实现)

    前言 GoF的23种设计模式,包括创建型、结构型和行为型,其涵盖了面向对象思想的精髓以及诸多细节。本文结合《设计模...

  • 设计模式总结(C++和Python实现)

    前言 GoF的23种设计模式,包括创建型、结构型和行为型,其涵盖了面向对象思想的精髓以及诸多细节。本文结合《设计模...

  • GOF23设计模式

    GOF 23: 创建型模式 结构型模式 行为型模式 创建型模式: 单例模式 -该类只拥有一...

  • 单例模式

    1. 介绍 单例模式, 是23种GOF设计模式之一, 属于创建型. 顾名思义, 单例模式就是一个类只能实例化出一个...

  • GoF - 创建型模式

    生成器模式(Builder) 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 这里的“...

网友评论

      本文标题:GoF - 创建型模式

      本文链接:https://www.haomeiwen.com/subject/nwqytrtx.html