[Java] 设计模式之工厂系列 01 简单工厂 - 缺点 :产生产品系列的时候很麻烦,会工厂泛滥
来源:互联网 发布:淘宝卖家公益怎么收费 编辑:程序博客网 时间:2024/06/12 07:38
设计模式之工厂系列 http://liaokang-java.iteye.com/blog/1197771
理解 Spring 的 Bean 工厂Spring = IOC + AOP
(1), JDK 中 factory 也是比比皆是。
(2), 抽象工厂 -- 换皮肤的软件
抽象产品角色
Moveable
package com.bjsxt.dp.factory;public interface Moveable {void run();}
具体产品角色 1
Car 实际例子 初衷 :去一个地方让车跑起来。 (只给司机一辆车) 如果让单例 : 那么车的产生过程,不能给司机控制。
package com.bjsxt.dp.factory;import java.util.ArrayList;import java.util.List;public class Car implements Moveable {private static Car car = new Car();//private static List<Car> cars = new ArrayList<Car>();public Car() {}public static Car getInstance() {return car;}public void run() {System.out.println("冒着烟奔跑中car.......");}}
具体产品角色 2
Plane
package com.bjsxt.dp.factory;public class Plane implements Moveable {@Overridepublic void run() {System.out.println("扇着翅膀前进中plane....");}}
抽象工厂
VehicleFactory
package com.bjsxt.dp.factory;public abstract class VehicleFactory {abstract Moveable create();}
具体工厂
PlaneFactory
package com.bjsxt.dp.factory;public class PlaneFactory extends VehicleFactory {public Moveable create() {return new Plane();}}
测试类
Test
package com.bjsxt.dp.factory;public class Test {public static void main(String[] args) {//Car c = Car.getInstance();//Car c2 = Car.getInstance();//VehicleFactory factory = new BroomFactory();//Moveable m = factory.create();//if(c == c2) System.out.println("same car");//m.run();}}
- /**
- * 工厂模式的优点在于只要你新增一个产品,只需添加相应产品的工厂,当你需要更换产品时
- * 只需将对应的工厂改变,其它地方不需再改变,当然如果你新增的产品很多,这样容易造成工厂的泛滥
- * 这也是工厂模式的弊端
- */
0 0
- [Java] 设计模式之工厂系列 01 简单工厂 - 缺点 :产生产品系列的时候很麻烦,会工厂泛滥
- [Java] 设计模式之工厂系列 02-面向抽象编程 抽象工厂 - 缺点 : 产生新的产品品种的时候,改动太多
- 设计模式之工厂模式系列(简单工厂,工厂模式,抽象工厂模式)
- java设计模式系列--简单工厂模式
- 设计模式系列一之简单工厂
- java设计模式系列之工厂模式
- 设计模式系列01:简单工厂模式
- java设计模式之工厂系列
- JAVA设计模式之工厂系列
- 设计模式之工厂系列
- Unity常用的设计模式_工厂模式系列之简单工厂模式
- 常用Java设计模式系列(5)- 简单工厂、工厂方法模式和抽象工厂模式
- 设计模式系列之一:简单工厂模式
- 【设计模式系列】--简单工厂模式
- PHP设计模式系列:简单工厂模式
- 学习设计模式系列之“简单工厂模式”
- 菜鸟学设计模式系列笔记之简单工厂模式
- java 工厂模式之简单工厂(01)
- iOS 修改textField的placeholder的字体颜色
- VMWare上的WEC7修改调试串口
- SSL Server cert and client no cert
- 修改Ubuntu默认运行级别,启动字符界面
- 感想
- [Java] 设计模式之工厂系列 01 简单工厂 - 缺点 :产生产品系列的时候很麻烦,会工厂泛滥
- Ceres solver tutorial
- 用GetAdaptersInfo()获取本机的MAC地址
- Linux提权后获取敏感信息的方法与途径
- 三大报表的关系
- FI/CO模块的一些基本概念
- Tomcat7 采用service.bat 注册window服务
- LaTeX中算法环境设置
- rman中如何制定删除某段时间的归档日志