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

容易工厂VS工厂方法

2012-09-05 
简单工厂VS工厂方法简单工厂? 1.自定义多个算法? 2.算法的实现在工厂类中实现,工厂类中包含一些算法逻辑,

简单工厂VS工厂方法

简单工厂

? 1.自定义多个算法

? 2.算法的实现在工厂类中实现,工厂类中包含一些算法逻辑,根据客户端选择条件动态管理相关类

? 3.客户端不需要指明调用的算法类

? 4.对新的产品or算法可扩展,但同时需要修改工厂实现类,实现对修改开发,

工厂方法模式

? 1.对具体产品有自己的产品工厂

? 2.对实现哪个产品的判断移动到客户端来判断,需要由客户端选择实现的工厂,生成产品

? 3.如果同时需要增加一个产品,需要同时增加产品类和产品工程类,修改的只是客户端

?

?

 abstract class  Product  {  public  abstract void CreateProduct();   }         //product a  class Product_A extends Product  {   public  void CreateProduct()  {   System.out.println("Create Product_A");  }  }          // product b    class Product_B extends Product  {   public  void CreateProduct()  {   System.out.println("Create Product_B");  }  }  // Factory  class Product_Factory  {  public  Product CreateProduct(int ind)  {  Product pro = null;  if(ind == 1)                  pro = new Product_A();  if(ind == 2)                  pro = new Product_B();  return pro;  }  }        // 工厂 interface  CreateFactory { public  Product CreateProductFactory(); } class Factory_A implements CreateFactory {  public  Product CreateProductFactory() {  return new Product_A(); } }  class Factory_B implements CreateFactory {  public  Product CreateProductFactory() {  return new Product_B(); } } class Product_Factory_Test { public void Product_Factory_Client() { // simple factory  Product_Factory fac = new Product_Factory();  fac.CreateProduct(1).CreateProduct();   fac.CreateProduct(2).CreateProduct();                // factory method   CreateFactory Cfa = new Factory_A();   CreateFactory Cfb = new Factory_B();               Cfa.CreateProductFactory().CreateProduct();   Cfb.CreateProductFactory().CreateProduct();}

?

热点排行