我有一组在UI中镜像的自定义对象
界面(极简化)
public interface IMyInterface
{
string Name { get; set; }
int Data { get; set; }
}
集合
MyCollection<IMyInterface> Foo;
UI(以合理的方式显示Foo
的内容,例如。)
Name: [ asdf ] Data: [ 1234 ]
Name: [ qwer ] Data: [ 5678 ]
Name: [ zxcv ] Data: [ 0000 ]
我现在需要在我的程序中打开两个IMyInterface
类型并显示平均数据以及单个IMyInterface
对象:
Name: [ asdf ] Data: [ 1234 ]
Name: [ qwer ] Data: [ 5678 ]
Name: [ zxcv ] Data: [ 0000 ]
Name: [ 2 Objects (asdf, qwer) ] Data: [ 3456 ]
我必须能够从这个新的平均值中获得asdf
和qwer
。
我能做到这一点的最佳方式是什么?我觉得我有三个选择:
IMyInterface
的内部类型
IMyInterface
的集合。然而,这感觉有点脏
一些属性不太平均。Foo
替换为“MyCollection”&gt;我在哪里使用它,检查内部集合的计数欢迎任何建议。
答案 0 :(得分:2)
您可以使用Composite design pattern,其中一个很好的示例是.net中的控件树:
每个IMyInterace都可以有一个IMyInterfaces集合,你可以选择如何处理不相关的属性(你总是可以返回null)