【发布时间】:2014-06-13 21:30:36
【问题描述】:
我很确定,这是一个简单的问题,但我现在卡住了。 我有以下设置:
public ParentClass()
{
public long ID { get; set; }
public String Title { get; set; }
public String PropertyA { get; set; }
public String PropertyB { get; set; }
public ParentClass()
{
_child1 = new ChildClass1();
_child1.ID = ID;
_child1.Title = Title;
_child1.PropertyA = PropertyA;
_child2 = new ChildClass2();
_child2.ID = ID;
_child2.Title = Title;
_child1.PropertyB = PropertyB;
}
private ChildClass1 _child1;
private ChildClass2 _child2;
}
父类只是用来控制整体行为,子类做实际的工作(每个不同的部分)。我希望两个子类都知道 ID 和 Title。但是 Child1 应该只知道 PropertyA,而 Child2 应该知道 PropertyB。因此,每个孩子都会拥有由此产生的 3 个属性。我可以使用一些数据对象,但这会导致调用像 _child1.Properties.ID ... 是否有解决此类问题的最佳实践或模式?
【问题讨论】:
-
这里真正的用例是什么?询问如何从
Parent -> Child传递数据是一个相当主观的问题。 -
您的属性是字段。对理解这一点没有帮助。
-
Parentclass 创建一个控件,该控件由 2 个子控件(一个选择元素和一个列表)组成。父类在选择元素和列表之间同步数据。所以一个孩子代表一个选择元素,另一个是列表。
-
贴出的代码似乎可以完成这项工作,那么这里的问题是什么?
-
我同意詹姆斯的观点。突出的是 PropertyB 和 A (顺便说一句,这是一个字段)在父级中被复制,当你不能打扰时(例如,只有一个检查子级的吸气剂)。一般来说,就像 ID 一样,您必须将它们分开,您可以修改 getter 和 setter 以使它们紧密耦合,而不是希望它们保持不变。
标签: c# design-patterns