Define an interface for creating an object, but let subclass decide which class to instantiate. Factory mothed lets class defer instantiation to subclass.
Factory Method模式的几个要点
• Factory Method模式主要用于隔离类对象的使用
者和具体类型之间的耦合关系。面对一个经常变
化的具体类型,紧耦合关系会导致软件的脆弱。
• Factory Method模式通过面向对象的手法,将所
要创建的具体对象工作延迟到子类,从而实现一
种扩展(而非更改)的策略,较好地解决了这种紧耦合关系。
• Factory Method模式解决“单个对象”的需求变化,
Abstract Factory 模式解决“系列对象”的需求变
化,Builder模式解决“对象部分”的需求变化。
工厂方法创建一个对象。
1
public interface IMaker
2
{
3
Product FactoryMethod();
4
}
5
6
public class Maker: IMaker
7
{
8
public Product FactoryMethod()
9
{
10
return new ConcreteProduct();
11
}
12
}
13
14
public abstract class Product
15
{
16
//
17
}
18
19
public class ConcreteProduct : Product
20
{
21
//
22
}

2



3

4

5

6

7



8

9



10

11

12

13

14

15



16


17

18

19

20



21


22

public abstract class Creator
{
public abstract Product FactoryMethod();
}
public class RealCreator : Creator
{
public override Product FactoryMethod()
{
return new ConcreteProduct();
}
}
http://www.dofactory.com/Patterns/PatternFactory.aspx