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

java设计方式之工厂方法模式(创建型模式)

2012-07-03 
java设计模式之工厂方法模式(创建型模式)?package com.createtype.desginpatterns.facotry.factorymethod

java设计模式之工厂方法模式(创建型模式)

?

package com.createtype.desginpatterns.facotry.factorymethod;//抽象工厂类Creatorpublic abstract class AbstractFactoryCreator {      public final AbstractProduct newProduct() {          AbstractProduct product = createProduct();          check(product);          return product;      }            //手机检测      private AbstractProduct check(AbstractProduct product) {          //do something          return product;      }            //子类实现此方法,负责具体产品的创建      protected abstract AbstractProduct createProduct();   }  package com.createtype.desginpatterns.facotry.factorymethod;///抽象产品类Productpublic abstract class AbstractProduct {      //这里只定义一个简单方法      public abstract void use();  }  package com.createtype.desginpatterns.facotry.factorymethod;//具体工厂类,负责生产Iphone,IphoneCreatorpublic class SpecificFactoryIphoneCreator extends AbstractFactoryCreator{        /**      *生成Iphone的工厂,负责产品的具体创建      */      @Override      protected AbstractProduct createProduct() {          return new SpecificIphoneProduct();      }  }  package com.createtype.desginpatterns.facotry.factorymethod;//具体产品类IphoneProducpublic class SpecificIphoneProduct extends AbstractProduct {      @Override      public void use() {          System.out.println("Iphone生产出来啦,这是你的Iphone.");      }    }  package com.createtype.desginpatterns.facotry.factorymethod;//测试类Client//这样,我们就实现了一个简单的工厂方法。我们可以看到,在客户程序中,//可以有效地避免了具体产品对象和应用程序之间的耦合。另外,当你要生产其它的产品时,//比如android手机,//只需用定义相应的android产品和生产android产品的工厂类,而两个抽象类不需要做任何修改。//工程方法的优势:低耦合//工厂方法:1.定义一个用于创建对象的接口,让子类决定实例化哪一个类,使一个类的实例化延迟到了子类。//2.对不同的产品,可以定义一个抽象的类,让不同的产品也继承这个抽象的产品。这就是工厂方法。public class Test {public static void main(String[] args) {// 建一个Iphone工厂AbstractFactoryCreator creator = new SpecificFactoryIphoneCreator();// 产品由具体类生产AbstractProduct product = creator.newProduct();product.use();}}

热点排行