在 MVC 和 MVP 和类似的模式中,经常有“被动视图”的方法,它尽可能愚蠢(包含尽可能少的逻辑)。这应该有助于单元测试并创建更清晰的视图和模型分离。
我知道这些模式有非常不同的风格,尤其是对 MVP 的理解似乎因文章而异。因此我的问题不是“我如何正确实现这种模式”。
我想改进视图和模型分离并提高应用程序的可测试性。因此,我想采取被动的观点。但我的问题是,你会将显然只与视图相关的逻辑放在哪里?当滚动条移动时,像 textviewer 一样应该滚动文本。你会把这个逻辑放到Presenter中吗?假设 textviewer 具有一些扩展功能。比如在文本段落上设置标记。将其逻辑放入 Presenter 中显然是有意义的。但是,如果它与视图的所有“直接”逻辑(如滚动文本)混合在一起,Presenter 可能会变得非常大,这也不是一个很好的设计。
所以我的问题是在哪里放置被动视图的显示相关逻辑以及在 Presenter 中混合什么功能。
谢谢!