您的位置:首页 > 其它

设计模式-简单工厂

2015-01-02 22:56 211 查看
【感想】

今天学习了简单工厂模式,说起来简单其实真的简单。

举个例子,在伊利工厂里生产很多种类的食品,有雪糕,有

牛奶。很显然,要是你是一个需求量很大的零售商,你每次

需要很多很多的雪糕和牛奶。你当然不希望,每次都写一大

堆的配方要求,因为工厂已经制定了标准。你只需要要说(

纯牛奶,小布丁)等等名字。他们就给你货。而不要自己去

说我想要一台生产(小布丁)的机器为我生产(小布丁)。

在java里的意思就是。你不必说:

ClassNameA obj1 = new ClassNameA();

ClassNameB obj2 = new ClassNameB();

你只需要这样:

ClassBase obj1 = ClassBase.getInstanece("ClassNameA");

ClassBase obj2 = ClassBase.getINstanece("ClassNameB");

看看一个完整的事例:

interface Car{

public void drive();

}

class Benz implements Car{

public void drive(){

System.out.println("Driving Benz");

}

}

class Bmw implements Car{

public void drive(){

System.out.println("Driving Bmw");

}

}

class Aud implements Car{

public void drive(){

System.out.println("Driving Aud");

}

}

class Driver{

public static Car driverCar(String s) throws Exception{

if(s.equalsIgnoreCase("Benz")){

return new Benz();

}else if(s.equalsIgnoreCase("Bmw")){

return new Bmw();

}else if(s.equalsIgnoreCase("Aud")){

return new Aud();

}else{

//System.out.println("No Car ..");

throw new Exception();

//return null;

}

}

}

public class Test{

public static void main(String [] args){

try{

Car car1 = Driver.driverCar("benz");

car1.drive();

Car car2 = Driver.driverCar("aud");

car2.drive();

Car car3 = Driver.driverCar("bmw");

car3.drive();

}catch(Exception e){

System.out.println("Catch a Exception");

}

}

}

输出结果:

Driving Benz

Driving Aud

Driving Bmw
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: