【发布时间】:2009-10-14 12:51:01
【问题描述】:
我想将模型视图演示者模式用于包含将在其他项目中使用的用户控件的库。
根据 MVP,我必须在用户控件上实现 IView 接口并将其传递给 Presenter 类。
在我的情况下,消费者不需要访问 IView 合同。 但是因为 IView 接口是一个公共契约,这意味着用户控件的消费者也可以访问它的方法\属性,我希望这些只能由 Presenter 访问。
有什么好的方法可以做到这一点?
【问题讨论】:
-
您好 RS Conley 感谢您的回复。我不完全理解你的意思,但我建议你做的一件事是没有在用户控件上实现 IView。目前我这样做是这样的:在用户控件中,我创建了一个嵌套类,它在其构造函数中接受用户控件。嵌套类实现 IView 并了解演示者。通过这种方式,我可以对控件的消费者隐藏 IView 合同,并处理嵌套类中的所有内容。
-
那个类只是控件的替代品。我得到的是 VIEW 是 FORM 而不是 CONTROL 甚至间接地通过一个辅助类。只有当一个控件可以等同于一个视图时,我才能想到一个表单有多个选项卡,每个选项卡都有一个模型视图,并且每个选项卡都在控件中实现。那么让控件实现视图(直接或间接)是有意义的。