工厂方法模式与抽象工厂模式的区别

理解:

可以这么去理解,“抽象工厂模式”这个称呼中的“抽象”是一个动词,即对工厂方法模式进行了抽象,就变成了抽象工厂模式,这么理解后,就不难看出它们的区别:

工厂方法模式:每个抽象产品派生多个具体产品类,

抽象工厂模式: 每个抽象工厂类派生多个具体工厂类,每个具体工厂类负责一个具体产品的实例创建;

客户端调用的区别:

工厂:

SomeFactory fac = new SomeFactory ();

Some s =  fac.create();

抽象工厂:

AbstractFactory fac;
switch (style) {
case MAC:
    fac = new MacFactory;
    break;
case WIN:
    fac = new WinFactory;
    break;
}
Button button = fac.CreateButton();
Border border = fac.CreateBorder();

可见抽象工厂抽象了一系列的创建者(工厂),它体现了面向接口的思想。


Total views.

© 2013 - 2018. All rights reserved.

Powered by Hydejack v6.6.1