5

我尝试遵循SOLID原则。但每次谈到用户界面时,我发现客户需要的笨拙的混合、聚合数据和单一职责的良好原则之间存在固有的摩擦。

现在可以将典型用户界面的各种点点滴滴划分为单一职责的类,但随后您会遇到各种有趣的构造问题,因为所谓的“分离”的 gui 块实际上经常变成是相同共享状态的不同视图,或者至少是重叠状态的部分视图。

我经常将相当笨重的控制器类混在一起用于我的视图,这些控制器类不是很像 SOLID,但这是相当不一致的编码实践,这让我有点困扰。似乎拆分它的复杂性是不值得的。

那么你如何处理呢?

4

2 回答 2

3

您是否研究过演示模式(Martin Fowler 的未完成著作)?我倾向于将 Presentation Model 用于复杂视图,将 Autonomous View 用于琐碎视图。演示模型为您提供了灵活的设置,您可以轻松地测试这些类。

于 2009-02-14T14:43:42.957 回答
1

我觉得你说得很对。如果这是良好的用户体验对您的应用程序的要求,那么数据视图可能需要是“杂乱无章的混合聚合数据屏幕”。对于 UI,UI 的可用性比试图坚持编码设计原则更重要。代码的设计原则不应决定用户界面的外观或工作方式。然后你就会得到对代码有意义的僵化形式和视图。做对用户有意义的事情。

话虽如此,上面提到的 MVC/MVP 模式仍然可以提供帮助。将视图与演示者分开。这样,您仍然可以隔离您的视图并保留视图的 SRP。您的演示者是必须违反 SRP 并且有多种更改理由的人。

于 2009-02-14T15:08:49.573 回答