接口分离原则指在设计时采用多个与特定客户类有关的接口比采用一个通用的接口要好。即,一个类要给多个客户使用,那么可以为每个客户创建一个接口,然后这个类实现所有的接口;而不要只创建一个接口,其中包含所有客户类需要的方法,然后这个类实现这个接口。
定义没那么重要,对于非软件从业者,可以无视上面的定义,直接看下文:
在面向对象的指导思想下,设计一个类大致和现实中设计一个职能部门差不多,需要考虑两方面需求:
(一)是优化资源调度、使用效率,提高效率,减少重复劳动。
(二)是便于对外提供功能服务,使功能的使用者能够清晰明确的使用到自己所需的功能,而不必纠缠其他不必要的功能。
为了满足第一条,软件设计上要注意代码的“高内聚”,就是将关联密切的功能放在一个类里面,以提高重用性;现实世界中,政府部门和企业内部需要将功能类似的组织合并,具体可以参照建国以来国务院下属部委的调整,当然这些调整的原因是多方面的,但其中有一些部门的合并确实考虑到了第一条,例如卫生健康委员会的设立和农业农村部的设立。
为了满足第二条,我们国家设置了“一个单位,两块牌子”的机构,例如今年频频亮剑的“中纪委国家监委”;在软件设计上,功能的调用者不直接通过依赖实现类的方式完成功能调用,而是依赖功能清晰,调用明确的接口,而多个功能接口可以由一个功能内聚的类提供实现。
原文:https://www.cnblogs.com/rxmind/p/12834405.html