大话设计模式读书笔记-1简单工厂模式

第1章 代码无错就是优?——简单工厂模式

概念

单独的简单工厂类,通过一个接口不同的分支,创建不同的实现类。

例子

设计一个计算器,不能面向过程:

  • 业务与逻辑的封装

    将界面与算法分开(业务与逻辑),界面包含业务部分负责客户交互,逻辑是算法,实现不同的运算。

  • 紧耦合与松耦合

    通过为不同的运算符创建不同的类(这样实现了对算法中方法的封装,进一步隔离了业务和实现逻辑)。Opera做为抽象类,加法、减法、乘法、除法分别继承Opera,(这样利用了继承,进一步将实现细节封装)

  • 简单工厂模式

    OperaFactor做为工厂类,为OperaFactor提供一个运算符参数,创建出相应的Opera子类但返回的是Opera类型(采用多态,将子类的创建也封装了)

实现

简单工厂类实现:

  • 运算抽象类(Operate): 所有运算对象的父类,提供子类要实现的抽象接口,添加新运算符只需要创建新类,以及修改后面的OperaFactor即可。
  • 具体运算符类: 对具体运算进行实现,实现了对具体算法的封装。
  • 简单工厂类(OperaFactor): 集中创建具体运算子对象,通过OperaFactor传递参数来指明创建何种运算,返回多态的 Operate 父类隔离了具体子类。
  • 客户端: 创建简单工厂类,传入运算符参数,工厂类返回以抽象Operate多态的具体运算符类对象。

实现图如下:

img

使用图:

img

作用

简单工厂模式,实现了子类对象创建的封装。

其它

另外,讲解了UML类图:继承(实线三角箭头)、实现(虚线三角箭头)、组合(实体菱形箭尾)、聚合(空心菱形箭尾)、依赖(虚线)、关联(实线)

你可能感兴趣的:(大话设计模式读书笔记-1简单工厂模式)