简单工程模式
来源:互联网 发布:阿里云邮箱地址前缀 编辑:程序博客网 时间:2024/06/06 23:50
工厂模式是常用的实例化对象的模式,是使用工程方法替代new操作的一种模式。工厂模式主要是为来创建对象提供过渡接口,以便更好的封装对象的实例化过程,降低模块之间的耦合程度。
工厂模式可以分为三类。简单工厂模式、工厂方法模式、抽象工厂模式。三种模式抽象程度逐步提高。
本章主要讨论以下简单的工厂模式,简单工厂模式又可以看作为静态工厂模式,可以理解为一个创建特定对象的工具类。
简单工厂模式的组成:
1) 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑,用来创建产品
2) 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。
3) 具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。
类图如下:
代码示例:
工厂模式可以分为三类。简单工厂模式、工厂方法模式、抽象工厂模式。三种模式抽象程度逐步提高。
本章主要讨论以下简单的工厂模式,简单工厂模式又可以看作为静态工厂模式,可以理解为一个创建特定对象的工具类。
简单工厂模式的组成:
1) 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑,用来创建产品
2) 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。
3) 具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。
类图如下:
代码示例:
下面通过简单的代码来说明下简单工程
1)创建产品接口
package myThink;/** * Created by fengxinzi on 17-12-12. *//** * 抽象产品类,用来定义产品的公共方法 */public interface Person { void eat (); void say();}
2)创建产品1和产品2 对应Woman Man
package myThink;/** * Created by fengxinzi on 17-12-12. *//** * 具体产品类,实现Persion接口。 */public class Woman implements Person{ @Override public void eat() { System.out.println("Womon Eat"); } @Override public void say() { System.out.println("Womon Say"); }}
package myThink;/** * Created by fengxinzi on 17-12-12. *//** * 具体产品Man类,实现Person接口 */public class Man implements Person { @Override public void eat() { System.out.println("Man eat"); } @Override public void say() { System.out.println("Man say"); }}
3)创建工程方法
package myThink;/** * Created by fengxinzi on 17-12-12. */public class PersonFactory { private static Person person = null; private static Woman woman= null; private static Man man= null; public static Person getInstance(String whichOne){ if("W".equals(whichOne)){ if(woman == null){ person = new Woman(); }else{ person = woman; } } if("M".equals(whichOne)){ if(man == null){ person = new Man(); }else{ person = man; } } return person; }}
4)创建模拟业务逻辑使用工程类实例化具体产品的过程。
package myThink;import org.junit.Test;/** * Created by fengxinzi on 17-12-12. */public class FactoryTest { @Test public void testFactory(){ Person w = PersonFactory.getInstance("W"); w.eat(); Person m = PersonFactory.getInstance("M"); m.say(); }}
5)输出如下
Womon Eat
Man say
Process finished with exit code 0
阅读全文
0 0
- 简单工程模式
- 简单工程模式
- 简单工程模式
- 简单工程模式
- 设计模式----简单工程模式
- 【初探第一章】 简单工程模式
- 设计模式之简单工程模式
- 工程模式(一)简单工厂模式
- php设计模式:简单工程模式
- 简单工程模式(c++描述)
- 设计模式 -- 策略模式 + 简单工程模式(C++)
- 【设计模式】简单工程模式和策略模式的区别
- 1. 一起学习c++设计模式-简单工程模式
- 大话设计模式java版本 第一章 简单工程模式
- 工厂模式(简单工厂模式+工厂方法模式+抽象工程模式)
- 工程文件管理之makefile最简单模式
- 大话设计模式c++实现--简单工程模型
- 设计模式-工程模式
- 2017-12-11日周总结
- linux下io模型
- Python Django Mongodb
- Android 自动化测试经验
- document获取DOM节点的三种方法详解
- 简单工程模式
- 猜数字(线程)
- 设计模式-装饰者模式
- 用Oracle写分组计算数量后再合计,并得出百分数
- quartz(三):利用quartz定时执行运行环境检测
- matlab 彩色图和热力图叠加显示
- 三级联动
- css实现两边固定,中间自适应
- c编程之逆转比特位