读书人

工场方法-FactoryMethod

发布时间: 2012-12-24 10:43:14 作者: rapoo

工厂方法-FactoryMethod

工厂方法:
将各种产品使用不同的工厂来生产,各种工厂中的创建方法可以互相独立地改变,并将这些工厂类抽象出一个共同的父类。

?

?

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 abstract class Factory{
??? abstract public Auto createAuto();???
}


具体工厂类carFactory:
public class CarFactory extends Factory{
??? pubic Auto createAuto(){
?????? return new Car();??????
??? }?
}?

?

具体工厂类truckFactory:
public class CarFactory extends Factory{
??? pubic Auto createAuto(){
?????? return new Truck();??????
??? }?
}?

?

?

?

客户端调用:
public class Client{
??? Factory factory;
??? Auto auto;
??? public static void main(){
??????? factory=new CarFactory();
??????? auto=factory.createAuto();
??????? auto.run();

??????? factory=new TruckFactory();
??????? auto=factory.createAuto();
??????? auto.run();
??? }
}


工厂方法能实现而简单工厂不能实现的情景:
对每一种生产出的产品实例做不同的操作;
增加一种完全不同的产品;
在不修改原有工厂类的情况下增加对新产品的支持;

?

?

读书人网 >编程

热点推荐