设计模式-简单工厂模式
来源:互联网 发布:网络安全法解读—试卷 编辑:程序博客网 时间:2024/05/22 12:27
1.1简单工厂模式
简单工厂模式本身很简单,而且使用在业务比较简单的情况下,简单工厂模式有三种角色组成
A:工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。
B:抽象产品角色:一般是具体产品继承的父类或者实现的接口。
C:具体产品角色:工厂类所创建的类就是此角色的实例。
1.2一个简单的例子
/** *抽象产品角色:运动员 */ public interface SportsMan{ public void run(); public void jump(); } /** *具体产品角色:足球运动员 */ public class FootBallSportsMan implements SportsMan{ public void run(){} public void jump(){} } /** *具体产品角色:篮球运动员 */ public class BasketBallSportsMan implements SportsMan{ public void run(){} public void jump(){} } /** *工厂类角色:球员联盟 */ public class SportsManFactory{ private SportsManFactory(){} public static SportsMan registerFootBallSportsMan(){ return new FootBallSportsMan(); } public static BasketBallSportsMan registerBasketBallSportsMan(){ return new BasketBallSportsMan(); } } /** *客户端:比如某足球俱乐部为球员注册专业运动员牌照 */ public class ClubCilent{ private SportsMan goalKeeper;//守门员 private SportsMan guard;//后卫 public void test(){ //为守门员向球员联盟注册专业足球运动员牌照 this.goalKeeper = SportsManFactory.registerFootBallSportsMan(); //为后卫 this.guard = SportsManFactory.registerFootBallSportsMan(); this.goalKeeper.run(); this.guard.jump(); } }
简单工厂的优点和缺点:(1)帮助封装:简单工厂虽然很简单,但是帮我们实现了组件的封装,让组件外部能够真正实现面向接口编程。(2)解耦:通过简单工厂,实现了客户端与具体实现的解耦,如同上面的例子,客户端根本就不知道具体有谁实现以及如何实现的。(3)可能增加客户端的复杂度:如果通过客户端参数来选择具体的实现类,那么就必须让客户端理解参数所代表的具体含义和功能。(4)不方便扩展子工厂
0 0
- 简单工厂设计模式
- 设计模式-----简单工厂
- 简单工厂设计模式
- 设计模式:简单工厂
- 设计模式 - 简单工厂
- 设计模式 简单工厂
- 【设计模式】【简单工厂】
- 简单工厂设计模式
- 简单工厂设计模式
- 设计模式--简单工厂
- 简单工厂设计模式
- 简单工厂设计模式
- 设计模式------------简单工厂
- 设计模式--简单工厂
- 简单工厂设计模式
- 设计模式---------简单工厂
- 设计模式--简单工厂
- 简单工厂设计模式
- css3动画
- 杭电-1272 小希的迷宫 (无向图回路)
- POJ-1611 The Suspects(并查集)
- java 获取当前文件(项目)路径的多种方式
- HDU 5776 sum(水~)
- 设计模式-简单工厂模式
- spfa+枚举 hdu 3768 Shopping
- java字节流实现文件拷贝
- 后台管理系统分类
- Android 让Retrofit与Realm、Parceler一起使用
- 树结构练习——排序二叉树的中序遍历
- Android应用相互启动
- Android LCD(一):LCD基本原理篇
- Android 5.0 Camera系统源码分析(1):CameraService启动流程