我尝试遵循SOLID原则。但每次涉及用户界面时,我发现客户需要的笨重的混合数据集合数据与单一责任的良好原则之间存在固有的摩擦。
现在它 可以将典型用户界面的各个部分划分为单一责任类,但是你会遇到各种有趣的结构问题,因为所谓的“分开的”gui实际上经常被证明是相同共享状态的不同视图,或者至少是重叠状态的部分视图。
我经常最终将相当笨重的控制器类混合在一起,因为我的视图并不像SOLID那样,但编码实践相当不一致,而且让我感到困扰。看起来分裂它的复杂性似乎并不值得。
那你怎么处理它?</ p>
答案 0 :(得分:3)
你有没有看过presentation patterns(马丁福勒的不完整着作)?我倾向于使用Presentation Model进行复杂视图,使用Autonomous View进行简单的视图。 Presentation Model为您提供了灵活的设置,您可以轻松地测试这些类。
答案 1 :(得分:1)
我认为你非常正确。如果这是良好的用户体验对您的应用程序的要求,那么数据视图可能需要是“笨拙的混合,聚合数据屏幕”。对于UI,UI的可用性比试图坚持编码设计原则更重要。代码的设计原则不应该规定用户界面的外观或工作方式。然后,您最终会得到对代码有意义的严格表单和视图。做对用户有意义的事情。
据说上面提到的MVC / MVP模式仍然可以提供帮助。将视图与演示者分开。这样,您仍然可以隔离视图并保留视图的SRP。您的演示者必须违反SRP并且有多种原因需要更改。