【发布时间】:2011-02-23 07:41:30
【问题描述】:
在我的应用程序中,我维护类别。每个类别都有一些属性,这些属性会影响属于该类别的项目。这样的项目只能属于一个类别。该类别现在包含三个属性,并确定可以为项目设置哪些属性。
例如:A 类表示无法复制某些内容。然后,位于 A 类下的项目必须隐藏客户端的复制属性。在 GUI 中,复制复选框也必须是不可见的。
项目始终属于同一类型。
实现这一点的最佳方法是什么?
【问题讨论】:
标签: c#
在我的应用程序中,我维护类别。每个类别都有一些属性,这些属性会影响属于该类别的项目。这样的项目只能属于一个类别。该类别现在包含三个属性,并确定可以为项目设置哪些属性。
例如:A 类表示无法复制某些内容。然后,位于 A 类下的项目必须隐藏客户端的复制属性。在 GUI 中,复制复选框也必须是不可见的。
项目始终属于同一类型。
实现这一点的最佳方法是什么?
【问题讨论】:
标签: c#
你的问题有点含糊,但我会用接口做这样的事情。例如,您可以有一个 ICanCopy 接口。如果一个对象实现了这个接口,你可以在 UI 上显示复制复选框。
在您的示例中,您还可以创建一个 ICannotCopy 界面,然后隐藏控件,但这对我来说似乎违反直觉,我永远不会那样建模。
编辑:经过更多澄清后,我建议您查看装饰器模式:http://www.dofactory.com/Patterns/PatternDecorator.aspx
【讨论】: