工厂模式
介绍
核心工厂变成抽象接口,接口中定义生产产品(实例化类)的规范,工厂不负责产品的创建,将产品的创建工作交给子类。这个子类也叫子工厂,每一个子工厂单一职责的负责一个产品的创建。
由具体的工厂类生产具体的产品。
打个比方,小米公司有很多产品,例如:手机、笔记本电脑、智能家具相关等,但是小米公司自身不生产这些,而是把制定出这些产品的制作标准,由具体代工厂完成制作(可以把代工厂理解为工厂模式里的子工厂),而小米每新开发出一件新品,就需要一个新的子工厂来生产这件新产品。假如新开发出一款笔记本电脑,不可能使用之前的生产手机的子工厂来生产电脑。
优点:
- 将对象的创建延长到工厂的子类中完成,当新增一个产品时,不需要修改工厂类,而是新增一个子工厂,由新的子工厂负责新产品的创建工作。
- 遵循开闭原则
缺点:
- 在新增一个产品之后还要创建具体的子工厂类。