一、简单工厂模式Simple Factory

Alias: Static Factory Method 静态工厂方法
Intent
由一个工厂对象决定创建出哪一种产品类的实例
Motivation
 负责将大量有共同接口的类实例化
在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例, 被创建的实例通常都具有共同的父类。

例1:
 一个农场公司,专门向市场销售各类水果。系统中需
要描述下列水果:
 苹果Apple
 葡萄Grape
 草莓Strawberry
 水果与其他的植物不同,为与农场的其他植物区分开,可建立一个各种水果都适用的水果接口,该接口规定出水果类均需具备的方法:种植plant()、生长grow()以及收获harvest()。

一、简单工厂模式Simple Factory_第1张图片
Paste_Image.png
一、简单工厂模式Simple Factory_第2张图片
Paste_Image.png
一、简单工厂模式Simple Factory_第3张图片
Paste_Image.png
一、简单工厂模式Simple Factory_第4张图片
Paste_Image.png
一、简单工厂模式Simple Factory_第5张图片
Paste_Image.png
一、简单工厂模式Simple Factory_第6张图片
Paste_Image.png
一、简单工厂模式Simple Factory_第7张图片
Paste_Image.png
一、简单工厂模式Simple Factory_第8张图片
Paste_Image.png
一、简单工厂模式Simple Factory_第9张图片
Paste_Image.png

优点:
 模式的核心是工厂类, 该类中含有必要的判断逻辑,可以决定在什么时候 创建哪一个产品类的实例, 客户端可以免除直接创建产品对象的责任, 而 仅仅负责“ 消费” 产品。
 简单工厂模式实现了对责任的分割。
缺点
 由于工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受 到影响。
 使用简单工厂模式将会增加系统中类的个数,在一定程序上增加了系统的复 杂度和理解难度。
 系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,在产品类型较多时, 有可能造成工厂逻辑过于复杂,不利于系统的扩展和维护。
 简单工厂模式由于使用了静态工厂方法,造成工厂角色无法形成基于继承的 等级结构。

你可能感兴趣的:(一、简单工厂模式Simple Factory)