我希望将解析器的实例传递给对象及其所有子对象,它们也可能有子对象。在没有每个对象包含另一个实例的情况下传递解析器的最佳方法是什么?
假设我有:
CustomControl
,其中包含一个UIElementCollection
属性,CustomControl
,因此具有自己的集合Parser
将实现的对象IParser
在Parser
将包含一个方法:public static CustomControl[] Parse(string s)
。
我想将解析器类传递给每个CustomControl
派生的对象以及它们的所有子对象,这些对象也都从派生CustomControl
。这些孩子可能有自己的孩子。
我将允许用户将解析器更改为另一个实现的对象IParser
。
您可以将解析器引用直接传递给子代。
将对象分配给变量(包括字段或参数)时,仅分配对该对象的引用,并且绝不制作副本,除非对象是诸如int
或的值类型DateTime
。
如果您不希望子级包含一个字段分别引用解析器,则可以在某个位置将解析器引用分配给静态成员,然后子级只能从该静态成员获取解析器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句