【发布时间】:2009-02-20 05:15:55
【问题描述】:
假设我有一个名为 Category 的简单类,具有属性 Id、Name。我想在 UI 中将这些显示为菜单。但是显示逻辑也受到第三个属性 IsSelected 的影响,我在渲染菜单时必须考虑到该属性。
有很多不同的方法可以实现这一点,例如通过继承或使用部分类。但是我的代码真的有必要从类似的东西改变
List<Category> list = CategoryLogic.GetCategories();
到
List<UICategoryItem> list = UICategoryLogic.GetCategories(intSelected);
对于这么小的东西,这似乎有点矫枉过正,但这是我能想到的唯一方法。我可以通过使用继承来减少所需的新代码量,但我仍在寻找至少 2 个新代码文件( UICategoryLogic 和 UICategoryItem ),如果类别发生更改,可能需要更改。
更不用说我的 UI 在不同的地方使用不同的类别的情况,每个可能都有一些独特的属性。我很快就会为每个目的使用大量不同类型的 Category 类,这可能会使代码难以理解。此外,我可能会使用不容易继承的数据集之类的东西,或者我使用的 ORM 会使类难以继承和扩展。
在这种情况下,我需要扩展基本数据项以满足我的需求吗?
【问题讨论】:
标签: design-patterns