本文目录 13 个章节
工厂模式
创建时间:2020/5/19 11:41
工厂模式
概念
作用:
创建者和调用者分离
分类
简单工厂(静态工厂)模式:用来生产同一等级结构中的任意产品(对于增加新的产品,需要修改已有代码)
工厂方法模式:用来生产同一等级结构中的固定产品(支持增加任意产品)
抽象工厂模式: 围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。
原则
开闭原则:一个软件的实体应当对扩展开放,对修改关闭
依赖倒置原则:要针对接口编程,不针对实现编程
迪米特法则(Law of Demeter):只与你直接的朋友通信,而避免和陌生人通信 又叫作最少知识原则(Least Knowledge Principle,LKP):一个类对于其他类知道的越少越好
核心本质
实例化对象不使用new,用工厂方法代替
将选择实现类,创建对象统一管理和控制。从而将调用者跟我们的实现类解耦
对比
结构复杂度:simple 代码复杂度:simple 编程复杂度:simple 管理上的复杂度:simple
根据设计原则:Factory Method 根据实际业务:simple
抽象工厂模式
定义
提供了创建一系列相关或者相互依赖对象的接口,无需指定他们具体的类

适用场景
客户端(应用层)不依赖于产品类实例如何被创建、实现等细节
强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量的重复代码
提供一个产品类的库,所有的产品以同样的接口出现,从而使得客户端不依赖于具体的实现
相关概念
产品族 产品等级
优点
具体产品在应用层的代码隔离,无需关心创建细节
将一个系列的产品统一到一起创建
缺点
规定了所有可能被创建的产品集合,产品族中扩展新的产品困难
增加了系统的抽象性和理解难度