本文的内容概要
* 开发环境及其文件目录概述
* 项目源码及其注释解析
* 简单工厂类图及其类的职责介绍
* 软件设计中为什么要使用简单工厂,其优缺点及适用环境
* 核心内容总结
下面就一一介绍,我们以一个农民种植生产水果为例来简述简单工厂的各个特征。
1: 首先是,实验环境极其类文件结构
2: 类文件内容及其解析:
3: 简单工厂类图及其类的职责介绍
一个简单共工厂类图
从类图可以看出
工厂类:(专业术语是Creator本实例中是Peasant)是工厂方法的核心。含有与应用紧紧关联的业务商业逻辑。工厂类在客户端的直接调用下创建产品对象。
抽象产品类(专业术语是Product本实例中是Friut)担任这个角色的类是由工厂方法模式所创建的对象的父类,或者是其共同拥有的接口。在Java中抽象的产品可以是抽象类或者接口。
具体产品(专业术语是Concrete Product本实例中是Apple,Grape):工厂方法创建的任何对象都是这个角色类的实例,具体的产品由一个具体的Java类来实现。
4: 软件设计中为什么要使用简单工厂,其优缺点及适用环境
简单工厂是一种创建模式,能够处理产品角色无变化或者变化比较小的情况,在java的核心类库中java.util.DataFormat类就是这样一个简单的工厂类。
优点: 该模式的核心是工厂类,这个类含有必要的商业判断逻辑,可以决定什么时候创建哪一个产品的实例,而客户端则可以免除直接创建产品的责任,而只是负责消费产品,从而实现了对责任的分割。
缺点:继承了所有的商业逻辑,当产品类有不同的接口的时候,工厂类需要判断在什么创建某种产品,使得其很难拓展,无法形成基于继承的等级结构。其只是在有限程度上支持了“开闭原则”。
5: 核心内容总结
总之在简单工厂模当中核心类是工厂类,处于实例化中心位置,知道什么时候,哪些产品需要创建需要被实例化。在一定程度上支持了“开闭原则”。优点是支持开闭原则,缺点是支持开闭原则不够。
下一节将介绍 工厂方法模式