01.创建型————简单工厂模式
2016-01-02 20:25
344 查看
package Create.a.SimpleFactory; //业务接口 public interface Salary { void calcSalary(); }
package Create.a.SimpleFactory; //业务实现类 public class HeBeiSalary implements Salary { @Override public void calcSalary() { // TODO Auto-generated method stub System.out.println("开始计算河北子公司的薪资!"); } }
package Create.a.SimpleFactory; //业务实现类 public class GuangDongSalary implements Salary { @Override public void calcSalary() { // TODO Auto-generated method stub System.out.println("开始计算广东子公司的薪资!"); } }
package Create.a.SimpleFactory; //工厂类 public class SimpleFactory { public static Salary createSalary(String name){ if(name.equals("HeBei")){ return new HeBeiSalary(); } if(name.equals("GD")){ return new GuangDongSalary(); } return null; } } 如果后期需求需要变更时,即需要变动if条件内容
package Create.a.SimpleFactory; //业务调用类 public class Client { public static void main(String[] args) { Salary sa = SimpleFactory.createSalary("HeBei"); sa.calcSalary(); sa = SimpleFactory.createSalary("GD"); sa.calcSalary(); } }
优点:在简单工厂模式中,客户端不再负责对象的创建,而是把这个任务丢给工厂类,客户端只负责对对象实例的调用
缺点:无法继承,变更需求时需要不断修改工厂类的判断逻辑
相关文章推荐
- opencv+QT学习(1) -- opencv+QT在win 7下的环境搭建
- 没事的时候进来瞧瞧
- 【AngularJS学习笔记】Java Script "use strict" 严格模式
- JSP标签
- Android带刻度的可选角度进度条
- 关于discuz中禾金投票系统循环出现引导页的问题
- oracle 打开trace,并分析trace
- C++ Primer Plus (第六版) 编程练习2.7
- [笔试题] 阿里巴巴2013技术类笔试题(完整版手工记录+具体解析)
- 数据库之自定义函数
- linux 命令 —— cd
- 在CentOS 6.6 64bit上编译安装LLVM3.7,Clang,Libc++和libc++abi
- 阿里云出现sudo get-apt install出现page404错误
- 在VirtualBox虚拟机中安装Linux 6.2 - 配置
- CAlayer基本概念
- Linux tty驱动学习 - UART驱动的open操作
- zzulioj--1633--Happy Thanksgiving Day - Hateable Name(字符串筛选)
- zzulioj--1633--Happy Thanksgiving Day - Hateable Name(字符串筛选)
- 【bzoj3171】[Tjoi2013]循环格
- 【转】磁场传感器和方位(上)