简单工厂模式【java版】

一、简单工厂模式的组成部分

     a)抽象产品: 在接口中指定了每种具体产品需要实现的方法

        具体产品: 实现接口

     b)工厂类:根据具体的参数,创建和返回相应的具体产品,由主程序直接调用

 

二、代码实现

抽象产品:Car

package com.simpleFactory;

public interface Car {

public void run();

}

具体产品1:BENZ

package com.simpleFactory;

public class BENZ implements Car {

public void run() {
// TODO Auto-generated method stub
System.out.println("BENZ is running!");
}

}

具体产品2:BMW

package com.simpleFactory;

public class BMW implements Car {

public void run() {
// TODO Auto-generated method stub
System.out.println("BMW is running!");
}

}

工厂类:Factory

package com.simpleFactory;

public class Factory {

/**
* 静态工厂方法
*
*/
public static Car createCar(String carName){
Car car = null;

if(carName.equalsIgnoreCase("BMW")){
car = new BMW();
}else if(carName.equalsIgnoreCase("BENZ")){
car = new BENZ();
}

return car;
}

}

主函数:

package com.simpleFactory;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("开始测试简单工厂模式!");

Car car_A=Factory.createCar("BENZ");
car_A.run();
Car car_B=Factory.createCar("BMW");
car_B.run();

}

运行结果:

 说明:虽然简单工厂模式使用广泛,但有个十分明显的特点:每增加一个新类, 就必须

   修改“工厂类中生产产品的静态方法”,如此并不符合“开闭原则”(对扩展开放,对改变关闭)

  

    

posted @ 2011-10-19 23:56  edisonfeng  阅读(377)  评论(0编辑  收藏  举报