美文网首页
创建型模式

创建型模式

作者: 飞天流逝 | 来源:发表于2019-10-05 19:33 被阅读0次

一、工厂模式之间的关系

        简单工厂,工厂模式,抽象工厂,三种模式名字都有工厂,怎么可能没关系呢,其实就是后一个比前一个更开放的关系。

简单工厂里包含了一大堆产品的实现,调用方告诉我你要哪个产品,我给你哪个,一个高大上的if else写法。工厂模式开放了一些,我只定义工厂是生产产品的,各个产品的工厂按自己的标准去实现产品的生产逻辑,调用者麻烦点,自己去找想要的产品工厂生产,举个例子,大家都知道电脑厂是生产电脑的,那你想要联想的电脑,去找联想工厂要,你想要Dell的电脑,去找Dell工厂要,但是联想工厂和Dell工厂生产的都是电脑。抽象工厂更开放了一些,今天联想扩展产品线了,除了电脑还产点别的,比如打印机啊,投影仪啥的,那我们就彻底开放点,抽象工厂也支持你针对不同的产品创建工厂来生产。

二、介绍三种工厂模式

(一)、简单工厂(Simple Factory)

就是一个if else,一个类实现了所有类型产品的生产过程,你要联想类型的电脑,我给你联想电脑;你要Dell类型的电脑,我给你Dell电脑。

LianxianComputer computer1 = (LianxianComputer) SimpleFactory.getComputer("lianxian");

DellComputer computer2 = (DellComputer) SimpleFactory.getComputer("dell");

(二)、工厂模式(又叫工厂方法,Factory Pattern)

电脑,是一个产品,也就是一个类,比较抽象而已。联想电脑继承了这个抽象类并且实现了它,Dell电脑继承了这个抽象类并且实现了它。现在来看看工厂,简单工厂是一个大集合,里面啥都有。工厂方法默认你开发的时候不知道会有哪些牌子的电脑,比如今天又来了一个苹果电脑。所以有个生产电脑的工厂,也就是一个类,也是抽象的。今天咱们要生产联想电脑,好,来一个联想电脑工厂,专门return联想电脑产品。今天咱们又要生产Dell电脑,好,那再来一个Dell电脑工厂就好了,专门return Dell电脑产品。

(三)、抽象工厂(Abstract Factory)

电脑卖的好,产能升级了,联想要卖打印机了,Dell一看,竞争对手开始卖,我们也卖!但是没有打印机这个实体啊,就算有了,也没有对应的工厂来生产啊。不要紧,我们把工厂扩展下,让它也可以生产打印机,这样就好了,不用再加工厂类了,直接开始生产。

三、建造者模式(Builder)

这个模式就是方便你初始化一个类,比如今天初始化一个类要好多步骤,你可以先new,然后一步步set进去,但是set进去的可能又是个别的类啥的,这样你就得了解这个类的初始化原理,用起来贼费劲。用了建造者模式,每一步都会返回一个造好了的当前类实例,你再根据下一步要set的内容调用下一步的建造者方法就好了。举个例子,今天要生产一台电脑,但是电脑的cpu构建很复杂,内存构建很复杂,采用建造者模式,你就不用想着cpu咋造了,内存咋造了。你只要告诉builder你需要多少频率的cpu,多大容量的内存就好了。

LianxiangComputer computer = LianxianComputerBuilder.initCpu(2.2, 4) // 2.2GHz的4核                                                                                                      .initRAM(8).build() // 8G内存,调用build方法最终创建好一个computer

四、原型模式

说实话,没有特别领会原型模式的精髓。比如我打红色警戒,所有的兵都是从美国大兵变种的,那美国大兵就是一个原型,然后工程师呢就是给美国大兵加扳手,这是一个原型的实现;火箭飞行兵就是给美国大兵加飞行器,这是一个原型;然后你可以开始巴拉巴拉生产各种工程师和火箭飞行兵了,但是你生产出来的只能是工程师和火箭飞行兵,比如我想要一个带扳手的火箭飞行兵,对不起,原型模式不支持。

相关文章

  • 23种设计模式总结一

    23 种经典设计模式共分为 3 种类型,分别是创建型、结构型和行为型。 一、创建型设计模式 创建型设计模式包括:单...

  • 设计模式之工厂模式

    设计模式中主要分为三大类:创建型、结构型、行为型 工厂模式属于创建型,顾名思义,创建型模式关注对象的创建过程,它将...

  • 创建型设计模式总结

    创建型设计模式总结 Intro 前面几篇文章已经把创建型设计模式都介绍了,来做一个简单的总结。 创建型设计模式,就...

  • 设计模式--分类

    一、设计模式的分类设计模式可以概括为23种,按照特点可以将其分为三大类型:创建型、结构型、行为型。1、创建型创建型...

  • 《设计模式之美》- 23种设计模式

    学习《设计模式之美》笔记。 23 种经典设计模式共分为 3 种类型,分别是创建型、结构型和行为型 创建型模式 创建...

  • 设计模式简单总结(待完善)

    设计模式简单总结 设计模式可以分为:创建型,结构型,行为型三种模式。 1 创建型模式 1.1 单例模式 用来指定某...

  • 手绘设计模式结构图

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

  • 设计模式(行为型)-- 观察者模式

    我们常把 23 种经典的设计模式分为三类:创建型、结构型、行为型。创建型设计模式主要解决“对象的创建”问题,结构型...

  • 建造者设计模式-Builder design pattern

    建造者设计模式是创建型设计模式的一种。创建型设计模式处理对象创建的问题。 建造者设计模式,用来构建需要经过若干个建...

  • 23种模式 - 总结

    创建型设计模式 创建型设计模式主要解决对象的创建问题,封装复杂的创建过程,解耦对象的创建代码和使用代码。包括:单例...

网友评论

      本文标题:创建型模式

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