C# C类别和分项的执行情况

C# C类别和分项的执行情况,c#,C#,在我的应用程序中,我维护类别。每个类别都有一些属性,这些属性会影响属于该类别的项目。此类项目只能位于一个类别下。该类别现在包含三个属性,并确定可以设置项目的哪些属性 例如:A类表示不可能复制某些内容。然后,驻留在类别A下的项必须隐藏客户端的copy属性。在GUI中,复制复选框也必须不可见 项目总是属于同一类型 实现这一点的最佳方法是什么?您的问题有点含糊不清,但我会用接口来实现这一点。例如,您可以有一个ICanCopy接口。如果某个对象实现了此接口,则可以在UI上显示“复制”复选框 在你的例子中

在我的应用程序中,我维护类别。每个类别都有一些属性,这些属性会影响属于该类别的项目。此类项目只能位于一个类别下。该类别现在包含三个属性,并确定可以设置项目的哪些属性

例如:A类表示不可能复制某些内容。然后,驻留在类别A下的项必须隐藏客户端的copy属性。在GUI中,复制复选框也必须不可见

项目总是属于同一类型


实现这一点的最佳方法是什么?

您的问题有点含糊不清,但我会用接口来实现这一点。例如,您可以有一个ICanCopy接口。如果某个对象实现了此接口,则可以在UI上显示“复制”复选框

在你的例子中,你也可以创建一个ICannotCopy界面,然后隐藏控件,但这对我来说似乎是违反直觉的,我从来没有这样建模过


编辑:在进一步澄清之后,我建议您研究一下decorator模式:

那么,您要说的是,可以在类别中设置的所有内容,为该部分创建一个新的界面?这意味着,item类具有一些属性,可以在其中“注入”这些接口。但是我如何处理GUI呢?GUI如何决定是否显示复制复选框?以及,您将如何对这样的东西建模?您在谈论什么模型:域模型?数据库模型?好的,我想我理解你的问题。我认为装饰图案有一个解决方案。我已经在我的答案中加入了链接。我已经读入了装饰图案。但我不知道我怎么能用这个模式。也许你可以提供一些虚拟代码?