繁体   English   中英

以下设计是抽象工厂吗?

[英]Is the below design an abstract factory?

我有以下场景

  1. 方法采用车辆类型对象并返回以下内容

    一个。 公路车辆b。 水车c。 飞行的车辆。

  2. 另一种方法从1返回对象并提供更具体的对象。 如果“道路车辆退回”,那么此方法将返回汽车,公共汽车等。

我可以说这是抽象工厂模式的一个例子吗? 因为在步骤1中,我得到了一个可能的工厂,并且在步骤2中,它更具特定的对象。

问候

你不是先创建一个具体的工厂,所以我不认为这是抽象工厂的代表。 因此,你有一个具体的工厂方法。

在这种情况下,您有一个工厂方法。

不,你不是一个抽象工厂,它更像是一个工厂方法模式

抽象工厂

Abstract Factory提供了用于创建一系列相关对象的接口,而无需显式指定其类。

像这样的东西就是抽象工厂

interface CarSparePartFactory{
    public SparkPlug createSparkPlug();
    public Wheel createWheel();

}

interface SparkPlug{

}

interface Wheel{

}

在这里,您将使用界面创建一组相关对象。

有关抽象工厂的更多信息:

事实并非如此。 抽象工厂应该自己确定要创建的对象的类型。 它不应该是客户端发送的参数。 否则,抽象工厂的主要目的(“提供用于创建相关或依赖对象族的接口而不指定其具体类。”)不满足。

有关详情,请访问http://en.wikipedia.org/wiki/Abstract_factory_pattern

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM