sta*_*tas 5 c++ design-patterns initialization factory-pattern
我对c ++开发和设计很陌生,因此我在问题上提前道歉是模糊或结构不合理.我的代码中有几个不同且不相关的层次结构,我想使用Alexandrescu描述和实现的通用工厂来实例化这些层次结构中的对象.
我遇到困难的部分是初始化阶段.这些类具有非常不同的初始化需求.有时,可以从存储(DB)中查找初始化所需的数据,在这种情况下,我可以将初始化过程封装在特定类的某些Init()方法中.但有时,数据只在本地知道实例化的时刻,需要手动传递给对象.我正在努力想出一个统一的方法来做到这一点.有没有人对接近这类问题有任何意见?谢谢
你正沿着过度工程高速公路飞驰……头朝前。
很少需要工厂,并且没有两个工厂是相同的(正如您所注意到的)。
尝试为所有工厂提供一个基类是没有用的,因为这个基类没有明确的语义。它建造什么?Bird
是?Car
是?他们是无关的…… Object
?这不是Java!
如果您希望使用工厂(出于某种原因),那么 aFactory
应该生成1种对象,所有对象都派生自一个公共基类。如果您有多种对象,那么您将需要多种工厂。
如果您发现Factory代码重复,请使用模板来提升通用代码。