《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技术中,都使用了工厂方法模式。
工厂方法模式又叫虚拟构造子(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技术中,都使用了工厂方法模式。
相关文章推荐
- 《JAVA与模式》学习笔记(一)——软件的可维护性与可复用性
- 《Java与模式》学习笔记之八---原始模型模式(Prototype Pattern)
- 《Java与模式》学习笔记(8)——序列键生成器与单例及多例模式
- 《Java与模式》学习笔记:设计模式——合成(Composite)模式
- 《Java与模式》学习笔记:设计模式——适配器(Adapter)模式
- 《Java与模式》学习笔记
- 7种创建型模式 之1 Simple Factory 简单工厂模式 《Java与模式》学习笔记
- 《Java与模式》学习笔记之六----单例模式(Singleton Pattern)
- 《Java与模式》学习笔记(4)——Abstract Factory
- 《Java与模式》学习笔记:设计模式——抽象工厂模式
- 7种创建型模式 之3 Abastract Factory 抽象工厂模式 《Java与模式》学习笔记
- 《Java与模式》学习笔记之二---工厂方法模式(Factory Method)
- 《Java与模式》学习笔记之九-----策略模式(Strategy Pattern)
- 《Java与模式》学习笔记(5)——Singleton
- 《Java与模式》学习笔记:设计模式——模板(Template)模式
- 《JAVA与模式》学习笔记(二)工厂模式,抽象工厂
- 7种创建型模式 之4 SINGLETON 单例模式 《Java与模式》学习笔记
- 《Java与模式》学习笔记(1)——设计原则
- 《Java与模式》学习笔记:设计模式——原则
- 《Java与模式》学习笔记:设计模式——树结构(合成模式+模板模式)