首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

容易工厂-SinpleFactory

2012-11-15 
简单工厂-SinpleFactory?简单工厂:一个具体工厂通过条件语句创建多个产品,产品的创建逻辑集中在一个工厂类

简单工厂-SinpleFactory

?

简单工厂:

一个具体工厂通过条件语句创建多个产品,产品的创建逻辑集中在一个工厂类上。

客户端通过传递不同的参数给工厂,实现创建不同产品的目的。

增加新产品时,需要修改工厂类,这不符合OCP原则。

?

code:
抽象类(或接口):
public abrtract class Auto{
abstract public void run();
}

?

实现类Car:
public class Car extends Auto{
public Car(){}
public void run(){
System.out.println("启动car");
}
}

?

实现类Truck:
public class Truck extends Auto{
public Truck(){}
public void run(){
System.out.println("启动truck");
}
}


工厂类:
public class AutoFactory{
public static Auto createAuto(int autoId){
switch(autoId){
case1: return new Car();
case2: return new Truck();
}
}
}

?

客户端:
pubic class Client{
public static void main(){
Auto car = AutoFactory.createAuto(1);
car.run();
Auto truck = AutoFactory.createAuto(1);
truck.run();
}
}

?


优点:
客户端调用创建产品时与产品的具体类的耦合度降低;
令创建与使用的代码相分离,可以独立的变化,易维护和扩展;

?


缺点:
当产品有复杂的多层次等级结构时,工厂类只有一个,只能以不变应万变。
所有产品的创建都集中到工厂类中,系统在进行功能扩展时较为困难。
简单工厂使用静态方法作为工厂方法,无法形成继承,使用工厂的可扩展性受到限制。

?

?

热点排行