工厂模式:createABC vs getType(ABC)

时间:2018-01-08 17:36:32

标签: oop factory factory-pattern

我正在尝试编写基于它们具有的某些属性来过滤对象列表的代码。有很多方法可以过滤这些对象,因此我可以使用多个过滤器。我不确定这个问题是否重要,但这些过滤器类有不同的构造函数。

为了控制这些过滤器的创建,我已经阅读了工厂模式,并决定尝试一下。似乎有两种广泛使用的实现:

  1. 使用getType方法,该方法使用例如在类型上切换语句以确定构建哪个对象。

  2. 为可以创建的所有可能对象创建单独的方法,例如createFilterAcreateFilterB

  3. 正如我所看到的,方法(2)的优点是:

    • 它提供了可以制作过滤器的非常好的可见性,如 我的IDE立即告诉我工厂可用的方法。 虽然方法(1)没有制作可以制作的滤波器类型 用户已知。

    • 不同的方法可以告诉我构建不同过滤器所需的参数是什么。

    方法(1)的优点是:

    • 我们有办法将字符串映射到特定类型的过滤器,因此API的用户不必混淆不同的类。

    我想知道我是否错过了这两个实现中的每一个的任何缺点/优点?我目前倾向于混合,即同时使用getTypecreateFilterX方法,其中getType方法切换并调用单个createFilterAcreateFilterB方法

0 个答案:

没有答案