您的位置:首页 > 编程语言 > Java开发

《Java与模式》学习笔记(3)——Factory Method

2007-04-03 12:52 316 查看
工厂方法(Factory Method)模式

工厂方法模式又叫虚拟构造子(Virtual Constructor)模式或多态性工厂(Polymorphic Factory)模式。

工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。

工厂方法模式的系统涉及到以下的角色:抽象工厂(Creator)角色、具体工厂角色(Concrete Creator)角色、抽象产品(Product)角色、具体产品(Concrete Product)角色。

结构图如下:(图是从其他地方找来的,所以跟示例代码不完全一样)



示例代码:




public interface Creator ...{


public Product factory();


}






public interface Product ...{}






public class ConcreteCreator1 implements Creator ...{




public Product facroty() ...{


return new ConcreteProduct1();


}


}






public class ConcreteCreator2 implements Creator ...{




public Product facroty() ...{


return new ConcreteProduct2();


}


}






public class ConcreteProduct1 implements Product ...{




public ConcreteProduct1() ...{


// do something


}


}






public class ConcreteProduct2 implements Product ...{




public ConcreteProduct1() ...{


// do something


}


}






public class Client ...{


private static Creator creator1, creator2;


private static Product prod1, prod2;




public static void main(String[] args) ...{


creator1 = new ConcreteCreator1();


prod1 = creator1.factory();


creator2 = new ConcreteCreator2();


prod2 = creator2.factory();


}


}

工厂方法模式是一个很常见的设计模式,可以在Java语言API的各个角落里面找到。比如java.util.Collection接口,这个接口规定所有的Java集合必须提供一个iterator()方法,返还一个Iterator类型的对象,这个iterator()方法就是一个工厂方法。同样的,List接口给出了两个工厂方法,一个是跟Collection一样的iterator()方法,另一个是listIterator()方法,返还一个ListIterator类型的对象。另外,在微软的COM技术架构中、Sun的EJB技术架构中和JMS技术中,都使用了工厂方法模式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: