如果我在我的应用程序中需要两种模式,我会使用什么设计模式来防止丑陋的条件代码?应用程序当前是 MVC,但我不想在我的控制器中使用条件代码,并且不希望每个视图有两个控制器,除非我必须这样做。
有什么建议么?
如果我在我的应用程序中需要两种模式,我会使用什么设计模式来防止丑陋的条件代码?应用程序当前是 MVC,但我不想在我的控制器中使用条件代码,并且不希望每个视图有两个控制器,除非我必须这样做。
有什么建议么?
每个实现都有一个不同的子类,在公共超类中或使用模板方法模式具有共享功能。
也许是状态模式?
在使用 PureMVC 制作的CafeTownsend演示中存在类似的情况,其中有两个不同的视图和两个独立的中介。你绝对不需要条件代码。我不知道您使用的是什么技术和编程语言,但在 Flex 中它将是一个 ViewStack,其中 ListView 和 EditView 作为子项:
相应的中介在创建视图时按需注册。您可以使用先前的链接检查其他实现。
这种决策的适当位置是 MVC 的控制器。我建议你先写在那里。如果它确实是重复的,那么弄清楚如何清理它可能很简单:您可以将条件逻辑移动到基类中,或者根据语言,可以使用某种过滤器来处理它。您还可以为视图创建一些“工厂”,它了解您的应用程序的“模式”。然而,在架构上,所有这些都在控制器中。
您不希望它出现在视图中是正确的。这会很混乱。您可能需要两种版本的视图,一种用于“查看”,一种用于“编辑”。
最后,这就是控制器的用途。祝你好运!
如果没有更多信息,很难确定,但我会建议策略模式。您可以使用相同的控制器,只需换出策略对象即可产生所需的行为变化。
这是一篇您可能会觉得有用的文章: http ://www.javaworld.com/javaworld/jw-04-2002/jw-0426-designpatterns.html
看看 JSR-168、java portlet 及其参考实现,它应该与您想要实现的类似。