设计模式之简单工厂模式

本文的内容概要

  * 开发环境及其文件目录概述

  * 项目源码及其注释解析

  * 简单工厂类图及其类的职责介绍

  * 软件设计中为什么要使用简单工厂,其优缺点及适用环境

  * 核心内容总结

 

下面就一一介绍,我们以一个农民种植生产水果为例来简述简单工厂的各个特征。

1: 首先是,实验环境极其类文件结构

 

2: 类文件内容及其解析:

 

 

 

 

 

 

 

 

 

 

 

 

3: 简单工厂类图及其类的职责介绍

一个简单共工厂类图

 

 

从类图可以看出

工厂类:(专业术语是Creator本实例中是Peasant)是工厂方法的核心。含有与应用紧紧关联的业务商业逻辑。工厂类在客户端的直接调用下创建产品对象。

抽象产品类(专业术语是Product本实例中是Friut)担任这个角色的类是由工厂方法模式所创建的对象的父类,或者是其共同拥有的接口。在Java中抽象的产品可以是抽象类或者接口。

具体产品(专业术语是Concrete Product本实例中是Apple,Grape):工厂方法创建的任何对象都是这个角色类的实例,具体的产品由一个具体的Java类来实现。

 

4:  软件设计中为什么要使用简单工厂,其优缺点及适用环境

简单工厂是一种创建模式,能够处理产品角色无变化或者变化比较小的情况,在java的核心类库中java.util.DataFormat类就是这样一个简单的工厂类。

优点: 该模式的核心是工厂类,这个类含有必要的商业判断逻辑,可以决定什么时候创建哪一个产品的实例,而客户端则可以免除直接创建产品的责任,而只是负责消费产品,从而实现了对责任的分割。

缺点:继承了所有的商业逻辑,当产品类有不同的接口的时候,工厂类需要判断在什么创建某种产品,使得其很难拓展,无法形成基于继承的等级结构。其只是在有限程度上支持了“开闭原则”。

  

5: 核心内容总结

  总之在简单工厂模当中核心类是工厂类,处于实例化中心位置,知道什么时候,哪些产品需要创建需要被实例化。在一定程度上支持了“开闭原则”。优点是支持开闭原则,缺点是支持开闭原则不够。

下一节将介绍 工厂方法模式

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值