Bre*_*ead -1 .net c# design-patterns
我在看设计模式,但在Factory和抽象工厂模式之间感到困惑.任何人都可以解释在何时遵循哪种模式的差异.
感谢名单
一个抽象工厂的目标是创造相关的对象组.抽象工厂的界面通常包含许多工厂方法,每个工厂方法对应于要创建的每种类型的对象.
这是一个抽象工厂的例子:
public abstract class AnimalFactory
{
public abstract Animal CreateFish();
public abstract Animal CreateBird();
public abstract Animal CreateMammal();
}
public class AfricanAnimalFactory : AnimalFactory
{
public override Animal CreateFish()
{
return new Reedfish();
}
public override Animal CreateBird();
{
return new Flamingo();
}
public override Animal CreateMammal();
{
return new Lion();
}
}
Run Code Online (Sandbox Code Playgroud)
相关资源:
工厂模式"定义用于创建对象的接口,但让子类决定实例化哪个类.Plant方法允许类将实例化延迟到子类".
抽象工厂模式的位置"提供用于创建相关或依赖对象族的接口,而不指定其具体类".
您可以将抽象模式视为工厂的工厂.正如@deadalnix所说,它可以让你选择合适的工厂.有关更多详细信息,请阅读以下链接:
Factory Method模式是类上的方法,用于构建其他实例.您可以在几乎任何恰好在当时使用的类上实现Factory方法.
抽象工厂模式是关于创建一个除了工厂方法之外没有任何东西(感兴趣)的类.当您需要创建一组不同但匹配的对象时,或者如果控制对象创建的行为上升到成为类的主要功能时,请使用抽象工厂.