[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();}}
  1.         /** 
  2.          * 工厂模式的优点在于只要你新增一个产品,只需添加相应产品的工厂,当你需要更换产品时 
  3.          * 只需将对应的工厂改变,其它地方不需再改变,当然如果你新增的产品很多,这样容易造成工厂的泛滥 
  4.          * 这也是工厂模式的弊端 
  5.          */  




0 0
原创粉丝点击