上期回顾:上期中公司开业不久遇到了一个问题,因为公司的员工只会开发java和C#软件,由于项目多员工无法去学习更多的开发语言(修改代码困难),导致接的php项目没人做。公司需要重新规划,根据这次的教训我将分部门来管理。分别为java部,C#部,准备找一些懂php的人来成立php部。于是先调整原来的公司结构
实现:首先一个公司的职能
public interface Factory {
Programmer getProgrammer();
}
java部门职能
public class JavaFactory implements Factory {
public Programmer getProgrammer() {
return new JavaProgrammer();
}
}
C#部门职能
public class CsharpFactory implements Factory {
public Programmer getProgrammer() {
return new CsharpProgrammer();
}
}
原有的结构已经调整好了,现在招一批懂php的开发人员
public class PhpProgrammer implements Programmer {
public void develop() {
System.out.println("I am develop php softeware");
}
}
将这个php开发人员组成一个新部门,php部门
public class PhpFactory implements Factory {
public Programmer getProgrammer() {
return new PhpProgrammer();
}
}
这样我的php项目就有人做了
public static void main(String[] args) {
System.out.println("I want a php programmer");
Factory factory=new PhpFactory();
Programmer programmer=factory.getProgrammer();
programmer.develop();
}
这样我就不用愁了,管他今后接待什么开发语言的项目,我只要照这个方法,原来的员工也满意,我也轻松了。
没过几天我还整又接了一个项目,客户说要用ruby开发。看到原来部门的那些员工个个忙的,我也不想再去说了。找一批会ruby的成立一个ruby部门来负责这个吧
public class RubyProgrammer implements Programmer {
public void develop() {
System.out.println("I am develop ruby softeware");
}
}
public class RubyFactory implements Factory {
public Programmer getProgrammer() {
return new RubyProgrammer();
}
}
开工
public static void main(String[] args) {
System.out.println("I want a ruby programmer");
Factory factory=new RubyFactory();
Programmer programmer=factory.getProgrammer();
programmer.develop();
}
哈哈,简单方便(当然这样的例子只是为了说明问题,现实中是不存在的)。
洋洋得意了好一阵子。慢慢的公司的规模变大,各方面的实力都在增加。于是我打算找几个销售人员来自己卖产品。按照原来的设计,发现问题来了。
原来公司只搞开发,销售人员进来和原来的结构肯定是大不一样了(工厂不再是生产一类东西了)。公司还有待调整
期待下期的抽象工厂模式来解决这个问题
分享到:
相关推荐
这个是http://blog.csdn.net/dawanganban/article/details/9877593博客中java设计模式的源代码。下载前请先看《设计模式——工厂方法模式》一文。
这个是http://blog.csdn.net/dawanganban/article/details/9884681博客中java设计模式的源代码。下载前请先看《设计模式——工厂模式在开发中的应用》一文。
java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...
这个是http://blog.csdn.net/dawanganban/article/details/9875873博客中java设计模式的源代码。下载前请先看《设计模式——简单工厂》一文。
Java设计模式——代理设计模式(静态代理和动态代理) 各种情况例子源码
利用Java进行疫情大数据分析——“Java面向对象程序设计”课程实践教学设计研究.pdf
java设计模式——创建模式、结构模式、行为模式
网易云课堂微专业课程,Java核心设计模式——DAO模式的教学视频
这个http://blog.csdn.net/dawanganban/article/details/9990405博客中java设计模式的源代码。下载前请先看《设计模式——建造者模式》一文。
Java之SSH深入浅出——精简剖析
主要介绍了Java设计模式——工厂设计模式详解,具有一定参考价值,需要的朋友可以了解下。
Java设计模式——观察者模式的两种情况。
《设计模式——基于C#的工程化实践及扩展》相关的源码 ,这是一本讲设计模式的很好的书, 作者有深厚的功底, 从汇编到C++ ,再到C#/Java 等 ,并结合的思想 Martin Fowler的思想 ,对设计模式做了深刻的思考.
java23种设计模式 工厂模式 ,抽象工厂,建造者模式,单态模式,原型模式
浅析Java设计模式【1】——观察者!
浅析Java设计模式【3】——代理.pdf
java毕业设计——陶瓷工厂进销存管理系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——陶瓷工厂进销存管理系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——陶瓷工厂进销存管理...
工厂方法模式 抽象工厂模式 面向对象设计的基本原则: OCP(开闭原则,Open-Closed Principle):一个软件的实体应当对扩展开放,对修改关闭。 DIP(依赖倒转原则,Dependence Inversion Principle):要针对接口...
是http://blog.csdn.net/lxq_xsyu/article/category/1544127博客中java设计模式的源代码。下载前请先看《设计模式——单例模式》一文。
java模式文档,java模式文档,java模式文档