工厂方法模式

示例代码如下

//Creator.java
  
  public abstract class Creator
  {
    /**
     * looks like a factory
     * contains some products and some process methods
     */
    protected Product duct;
    abstract String processProduct();
    abstract String processProductSpecial();
    public String Operation()
    {
      return processProduct(); // FactoryMethod for implemention;
    }
  }
  
  //ConcreteProduct.java
  
  public class ConcreteProduct extends Product
  {
    public ConcreteProduct()
    {
      System.out.println("construct the ConcreteProduct object");
    }
    public String makeString(String str)
    {
      return "This is the product after processing:"+str;
    }
  }
  
  //Product.java
  public abstract class Product
  {
    public abstract String makeString(String str);
  }
  
  //ConcreteCreatorA.java
  
  public class ConcreteCreatorA extends Creator
  {
    /**
     * You can write some other class like this to override
     * the same methods do diffrent thing;
     */
    public ConcreteCreatorA()
    {
      duct=new ConcreteProduct();
      System.out.println("instanced a product");
  
    }
    public String processProduct()
    {
      System.out.println("product A:");
      return duct.makeString("Make @#a product");
  
    }
    public String processProductSpecial()
    {
      System.out.println("special product B:");
      //add another method here
      return duct.makeString("Make Special @#B product");
    }
  }
  
  //TestFactoryMethod.java
  public class TestFactoryMethod
  {
    public TestFactoryMethod()
    {
    }
    public static void main(String[] arg)
    {
      ConcreteCreatorA cc=new ConcreteCreatorA();
      System.out.println(cc.Operation());
      System.out.println(cc.processProductSpecial());
    }
  }

AddThis Social Bookmark Button

相关文档(Relevant Entries)
广告管理系统的UML分析与设计
单例模式
抽象工厂模式
Inversion of Control Containers and the Dependency Injection pattern
The Model-View-Controller Pattern —— MVC 模式
The Data Mapper Pattern —— 数据映射模式
设计模式与实现
常用的几中设计模式
WoW Powerleveling
Posted on March 9, 2007 11:00 PM | | | Comments (0) | | TrackBacks (0)

引用地址(TRACKBACKS)
 
TrackBack URL for this entry:
http://www.wujianrong.com/mt-tb.cgi/4768

发布评论(ADD YOUR COMMENTS)
 
感谢您参与评论;发表您的意见时请保持文章的相关性;不相关的或是单纯宣传的内容可能会被删掉。您的E-mail只是用来确认您发表的文章,不会出现在网页上。
Please keep your comments relevant to this blog entry. Email addresses are never displayed, but they are required to confirm your comments.

称呼(Name):      记住我的个人信息(Remember)
邮箱(Email):
网址(URL):
评论(Add your comments):

相关内容
广告计划