工厂方法模式

一.工厂方法模式的结构

工厂方法模式

说明:

* 抽象工厂(Creator):担任这个角色的是工厂方法模式的核心,它是与应用程序无关的。任何在模式中创建对象的工厂类必须实现这个接口。

* 具体工厂(Concrete Creator):担任这个角色的是实现了抽象工厂接口的具体java类。具体工厂角色含有与应用密切相关的逻辑,并且受到应用的调用以创建产品对象。

* 抽象产品(Product):工厂方法模式所创建的对象的超类型,也就是产品对象的共同父类或共同拥有的接口。

* 具体产品(Concrete Product):这个角色实现了抽象产品角色所声明的接口,工厂方法模式所创建的每个对象都是某个具体产品角色的实例。

二.源代码

Creator:

<code>public interface Creator {
/**

* 工厂方法
* @return
*/
public Product factory();
}/<code>

Product:

<code>public interface Product {
}/<code>

ConcreteCreator1:

<code>public class ConcreteCreator1 implements Creator {
@Override
public Product factory() {
return new ConcreteProduct1();
}
}/<code>

ConcreteCreator2:

<code>public class ConcreteCreator2 implements Creator {
@Override
public Product factory() {
return new ConcreteProduct2();
}
}/<code>

ConcreateProduct1:

<code>public class ConcreteProduct1 implements Product {
}/<code>

ConcreateProduct2:

<code>public class ConcreteProduct2 implements Product {

}/<code>

Client:

<code>public class Client {
private static Creator creator1,creator2;
private static Product product1,product2;
public static void main(String[] args) {
creator1 = new ConcreteCreator1();
product1 = creator1.factory();
creator2 = new ConcreteCreator2();
product2 = creator2.factory();
}
}/<code>

三.工厂方法模式与简单工厂模式

1.工厂方法模式的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具体类上。


分享到:


相關文章: