工厂模式

工厂模式

普通工厂

简单工厂模式的主要角色如下:

简单工厂(SimpleFactory):是简单工厂模式的核心,负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。

抽象产品(Product):是简单工厂创建的所有对象的父类,负责描述所有实例共有的公共接口。

具体产品(ConcreteProduct):是简单工厂模式的创建目标。


简单工厂核心类目就是工厂类,,工厂类根据不同标识,创建不同产品实例。。。。


工厂方法

简单工厂也有它的弊端。。比如我要增加产品。。那必须修改工厂类。。增加判断逻辑。。 所以出现了工厂方法模式(抽象产品只能生产一种产品,此弊端可使用抽象工厂模式解决。)

这样的情况下。我不需要知道具体产品。。只需要知道工厂。。就能生产对应的产品。。。。

工厂方法模式的主要角色如下。

抽象工厂(Abstract Factory):提供了创建产品的接口,调用者通过它访问具体工厂的工厂方法 newProduct() 来创建产品。

具体工厂(ConcreteFactory):主要是实现抽象工厂中的抽象方法,完成具体产品的创建。

抽象产品(Product):定义了产品的规范,描述了产品的主要特性和功能。

具体产品(ConcreteProduct):实现了抽象产品角色所定义的接口,由具体工厂来创建,它同具体工厂之间一一对应。


抽象工厂

工厂方法模式只考虑生产同等级的产品,但是在现实生活中许多工厂是综合型的工厂,能生产多等级(种类) 的产品,如农场里既养动物又种植物,电器厂既生产电视机又生产洗衣机或空调,大学既有软件专业又有生物专业等。

实际就是扩展了原有的实际工厂类,增加了产生不同产品的方法


几大工厂模式,说不上来哪个好哪个坏,只是应用不同的场景下哪个更加的合适才对。。。理解下这种模式的思想吧。。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容