我有一个顶级班,比方说学校。
还有几个课程扩展了学校课程。
通常,如果我必须调用其中一个子类,我会使用:
new Math('aaa')
, 或new English(array('foo'))
;
每个子类都有不同的参数。
现在,什么更好:
1)在 School 类中创建工厂方法,所以:
School::Factory('aaa')
将Math('aaa')
基于给定参数的类返回到 Factory() 方法
2)还是直接调用每个子类?
编辑:我只有两个子类,我的问题是我不知道这样做是否值得在生产代码中简化一点。我只是检查哪些参数传递给了 Factory 方法,并根据这些信息调用这两个类之一。你怎么看?
一方面,我将能够编写更简单的代码。另一方面,每次我需要添加新的子类时(尽管这样做的机会很少),我也需要更改 Factory() 方法,所以我在这里有一个依赖项。