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

王朝java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

摘自久久学院

看了论坛上的文章,读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());

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有