设计模式-简单工厂
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
今天学习了简单工厂模式,说起来简单其实真的简单。
举个例子,在伊利工厂里生产很多种类的食品,有雪糕,有
牛奶。很显然,要是你是一个需求量很大的零售商,你每次
需要很多很多的雪糕和牛奶。你当然不希望,每次都写一大
堆的配方要求,因为工厂已经制定了标准。你只需要要说(
纯牛奶,小布丁)等等名字。他们就给你货。而不要自己去
说我想要一台生产(小布丁)的机器为我生产(小布丁)。
在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
相关文章推荐
- C#设计模式学习笔记---简单工厂模式
- C#设计模式之简单工厂篇
- 用 Delphi 学设计模式 之 简单工厂篇- -
- 设计模式 之 简单工厂
- JAVA设计模式——简单工厂(Simple Factory)模式
- .NET设计模式(1): 简单工厂模式
- C#设计模式之简单工厂篇
- 设计模式之-简单工厂、工厂方法、抽象工厂
- C#设计模式之简单工厂篇
- 第一个设计模式:简单工厂
- 最简单的工厂设计模式 Factory
- [导入]C#设计模式之简单工厂篇
- C#设计模式之简单工厂
- 简单工厂设计模式-设计模式(1)
- 设计模式之Factory1(简单工厂,工厂方法,抽象工厂的比较)
- C#设计模式之简单工厂篇
- C#设计模式之简单工厂篇
- Dot Net 设计模式—简单工厂
- 简单工厂设计模式
- 设计模式-工厂模式-简单工厂