【问题标题】:C# implementation of category and sub items类别和子项的C#实现
【发布时间】:2011-02-23 07:41:30
【问题描述】:

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

例如:A 类表示无法复制某些内容。然后,位于 A 类下的项目必须隐藏客户端的复制属性。在 GUI 中,复制复选框也必须是不可见的。

项目始终属于同一类型。

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

【问题讨论】:

    标签: c#


    【解决方案1】:

    你的问题有点含糊,但我会用接口做这样的事情。例如,您可以有一个 ICanCopy 接口。如果一个对象实现了这个接口,你可以在 UI 上显示复制复选框。

    在您的示例中,您还可以创建一个 ICannotCopy 界面,然后隐藏控件,但这对我来说似乎违反直觉,我永远不会那样建模。

    编辑:经过更多澄清后,我建议您查看装饰器模式:http://www.dofactory.com/Patterns/PatternDecorator.aspx

    【讨论】:

    • 那么,你的意思是,凡是可以在类中设置的,为那部分创建一个新的界面?这意味着,项目类具有一些可以“注入”这些接口的属性。但是我该如何处理 GUI? GUI如何显示复制复选框?
    • 那么,你将如何建模这样的东西?
    • 你在说什么模型:领域模型?数据库模型?
    • 好的,我想我明白你的问题了。我认为装饰器模式为您提供了解决方案。我已将链接放在我的答案中。
    • 我已经阅读了装饰器模式。但我不知道如何使用这种模式。也许您可以提供一些(虚拟)代码?
    猜你喜欢
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    相关资源
    最近更新 更多