iOS 屏幕破开关闭原则

iOS screen break open closed principal

我面临一个问题,我设计了一个包含 table 单元格的屏幕。一段时间后,我设计了新屏幕,其中 90% 的单元格设计与我已经实现的相同,但这次我不想制作任何单独的自定义视图并重用已实现的 table 单元格和新的细胞.

那么,如何在不修改现有单元格的情况下在新屏幕中重复使用 table 单元格? iOS UI 元素是否打破了封闭的原则?还是我想错了?

您的第一个选择是创建一个具有相同设计的自定义视图并将其嵌入到每个 table 视图单元格中,然后自定义其余部分。

其次,您可以根据屏幕要求传递单元格的 state/type。基于state/type,可以hide/unhide需要的元素。

此外,视图是设计组件。如果我们足够好地模块化它们并将它们与业务逻辑分开,它们就不会破坏 SOLID 原则。 Apple 将其逻辑组件和 UI 组件放在不同的框架中。例如,ContactsContactsUI.