我无法修改正在使用的对象,我需要一个方法,但我确实希望在创建对象时调用它。所以我在想扩展方法在这里会很好,但是我不知道是否可能,但是,如果可以,那么如何呢?
编辑:
我的静态类具有应该创建的这个主要对象:
EcuVersion Ecu;
我将从类中调用此方法:
Ecu = ConvertAutodetect.Convert(rawData, Ecu, response);
平台将在寻找Ecu对象。
我的方法将返回一个EcuVersion对象。该对象除包含许多其他内容外,还包含一个集合,而我仅使用各自的集合:
ICollection<AutodetectStep> AutodetectSteps { get; set; }
AutodetectStep类有4个孩子,在其中一个孩子上,我需要在创建孩子时调用此扩展方法。
我必须创建许多子项并将它们添加到集合中,而且,我永远也不会实例化我的对象,因为其中的所有内容都是静态的。
那么使用工厂模式是否合适?
不,这是不可能的。如果是的话,那将是非常不可靠的,因为这取决于您是否包括相关的扩展名using
。这实际上是扩展方法的普遍问题,但在这里甚至更糟,因为它永远不会导致编译时错误。
实现此目标的最佳方法可能是使用工厂模式间接构造对象并将该工厂注入代码中。但是,这仍然不能解决现有代码的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句