服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java设计模式例子 factorymethod pattern


  //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());
    }
  }

扫描关注微信公众号