Tag: 界面隔离

Swift中的SOLID原理

SOLID是罗伯特·C·马丁(Robert C. Martin)在软件编程中使用的助记词缩写,它表示面向对象编程的5条原则。 单一责任原则 O笔已关闭 利斯科夫的替补 接口隔离 倾向倒置 这些原则解决了糟糕的架构问题,例如 美味佳肴 -某个地方的更改会破坏意外的部分,如果没有良好的测试覆盖范围,则很难跟踪。 固定性 -组件很难在另一个项目中重用或在同一项目的多个位置中使用,因为它具有许多依赖性。 易怒 -进行大量更改,因为它会影响多个部分。 这些SOLID原则不是严格的规则,而只是提高体系结构质量的准则。 让我们一一探究原理

ISP:接口隔离原理

根据方法组将Fat协议转换为小型协议 接口隔离原则( ISP)指出: 不应强迫客户依赖他们不使用的方法。 在设计应用程序时,我们应该关注包含多个子模块的模块抽象。 在创建另一个仅包含原始系统子模块的模块时,我们被迫实施完整协议并编写一些虚拟方法。 这样的协议被称为胖协议。 ISP帮助我们避免: 胖接口 不要强迫类实现他们无法实现的方法 不要用很多方法污染协议 接口隔离原则主张将“胖接口”隔离为较小的且高度紧密的协议,称为“角色协议”。 每个“角色协议”都声明一种或多种用于特定行为的方法。 因此,客户端只能实施与其方法相关的那些“角色协议”。 违反接口隔离原则: 当客户端依赖于不使用的方法时,这意味着抽象是错误的。 如果ImageMessageView和VideoMessageView实现此协议,则由于图像视图不了解视频播放器,反之亦然,因此将产生开销,因此需要实现虚拟方法来满足编译时错误。 使协议方法为可选的另一种解决方案是在协议扩展中创建虚拟方法,然后覆盖特定类中的必需方法。 遵循接口隔离原则: 通过遵循ISP,我们可以将上述协议分为2部分: 现在, VideoMessageView可以只符合DeepLinkVideoMessage 。 将来如果需要删除视频消息,我们可以简单地删除此协议并查看而无需触及其他代码。 与ImageMessageView相同