设计模式-工厂模式-原理剖析

2018-08-24  本文已影响162人  我静静仰望着天空

内容一:设计模式?

创建型模式->5种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式

结构型模式->7种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式

行为型模式->11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模

内容二:工厂方法模式?

1、什么是工厂方法模式?(定义)

      定义一个用于创建对象的统一的接口,然后由子类实现。

2、工厂方法模式->角色划分?

        4个核心角色

        角色一:抽象产品

        角色二:具体产品

        角色三:抽象工厂

        角色四:具体工厂

3、工厂方法模式->原理案例?

           工厂创建电脑->富士康工厂

           华为工厂、三星工厂、苹果工厂、联想工厂…

           如何知道你制造出来的产品是电脑?

           因为:电脑标准规范(协议、接口)->特点

           角色一:抽象产品->定义产品规范(规格)->电脑规范

           角色二:具体产品->具体实现(具体制造目标)->具体电脑

           具体电脑:华为电脑、三星电脑、苹果电脑…

            角色三:抽象工厂->定义工厂规范和标准

            角色四:具体工厂->华为工厂、三星工厂

 定义角色?

角色一:抽象产品->ComputerProtocol

角色二:具体产品->SXComputer、HWComputer、MacComputer…

角色三:抽象工厂->ComputerFactoryProtocol

角色四:具体工厂->SXComputerFactory、HWComputerFactory…

来...上代码:

1.创建项目 ,选择macOS下的Command Line Tool来创建项目

2. 创建 ComputerProtocol这个接口:

    角色一:抽象产品->定义产品规范(规格)->电脑规范

    角色一:抽象产品->ComputerProtocol

抽象产品->ComputerProtocol

3.创建具体的产品SXComputer、HWComputer、MacComputer…这个类继承NSObject

    角色二:具体产品->具体实现(具体制造目标)->具体电脑

                      具体电脑:华为电脑、三星电脑、苹果电脑…

    角色二:具体产品->SXComputer、HWComputer、MacComputer…

(1)创建SXComputer类

    三星的电脑一定会具有 抽象产品(上边)的特点.

    抽象产品是,具有是所有电脑的共同特点.

so :三星电脑要实现抽象产品具有的特点,实现抽象产品的方法

实现接口方法

(2)创建HWComputer类 (同理SXComputer类)

4.创建抽象工厂ComputerFactoryProtocol接口类 

    角色三:抽象工厂->定义工厂规范和标准

    角色三:抽象工厂->ComputerFactoryProtocol

    //电脑工厂说:我不知道是什么电脑,只需知道电脑标准就可以啦

5.创建SXComputerFactory三星工厂,和HWComputerFactory华为工厂

(1)创建SXComputerFactory类,三星工厂

三星电脑工厂引了"SXComputer.h"类

return返回的对象是三星电脑的类型特点.

ComputerProtocol是公共电脑的特点

SXComputer 实现了ComputerProtocol的方法.但是SXComputer具有他的电脑特点.

(2)创建HWComputerFactory华为工厂(同理(1))

6.最后一步,在main类实现

想实现HW电脑,直接替换一下对象就ok.省代码省力✌️

增送一张图,更好理解.

我们的面向协议,真是太屌啦!!!代码的可维护性,扩展性,代码大大提升✌️

有时间]我会整理一下百度地图,和高德地图里的代码,也是采用工厂设计模式.

嘻嘻,学习中的分享.加深学习🙏

上一篇 下一篇

猜你喜欢

热点阅读