看了论坛上的文章,读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");
}
}
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器