使用UML编写Java 设计模式例子 FactoryMethod Pattern

类别:Java 点击:0 评论:0 推荐:
摘自久久学院
看了论坛上的文章,读FactoryMethod Pattern UML图,写了个小例子程序。做为文章的补充!
//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());
    }
}

本文地址:http://com.8s8s.com/it/it12567.htm