接口隔离原则

设计原则-接口隔离原则

亡梦爱人 提交于 2020-10-28 13:32:57
接口隔离原则: 使用多个专用的接口, 而不使用的那一的总接口, 即客户端不应该依赖那些它不需要的接口. 根据接口隔离原则, 当一个接口太大的时候, 我们需要将它分割成更小的接口, 使用该接口的客户端仅需知道与之相关的方法即可. 每个接口应该承担一种相对独立的角色, 不敢不该干的事情, 该干的事情都要干. 这里的 "接口" 有两种含义: 一种是指一个类型所具有的方法特征的集合, 仅仅是一种逻辑上的抽象; 另一种是指某种语言具体的接口定义, 有严格的定义和结构. 当把接口理解成一个类型所提供的所有方法特征的集合的时候, 这就是一种逻辑上的概念, 接口的划分将直接带来类型的划分. 可以把接口理解成角色, 一个接口只能代表一个角色, 每个角色都有他特定的接口. 也可以叫做 "角色隔离原则". 当把接口理解成狭义上的特定语言的接口, 那么ISP(Interface Segregation Principle)表达的意思是指 接口仅仅提供客户端需要的行为, 客户端不需要的行为则隐藏起来, 应当为客户端提供尽可能小的单独接口, 而不要提供大的总接口. 在很多面向对象语言中, 实现一个接口就要实现该接口中定义的所有的方法, 因此大的接口使用起来很不方便(也可以引入抽象类解决这个问题; 我觉得Objective-C语言这样就很好, 声明接口时候可以声明成可选的, 这样实现接口就不需要实现所有的接口,

小菜学设计模式——接口隔离原则

你。 提交于 2019-12-22 19:20:46
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 背景 本文标题为什么叫小菜学习设计模式,原因是本文内容主要是学习《大话设计模式》时的笔记摘要部分,当然,并不是记录书中小菜的学习过程,这个完全没有意义,而是指本人学习 设计模式的 成长之旅。 真诚的希望自己能够从一名小菜成长为一名大鸟! 编写的程序应该满足: 1)可维护 2)可扩展 3)可复用 4)够灵活 废话少说,言归正传,设计模式原则之:接口隔离原则 书面理解 接口隔离原则:使用多个小的专门的接口,而不要使用一个大的总接口。 接口应该是内聚的,应该避免“胖”接口。一个类对另外一个类的依赖应该建立在最小的接口上,不要强迫依赖不用的方法,这是一种接口污染。 接口有效地将细节和抽象隔离,体现了对抽象编程的一切好处,接口隔离强调接口的单一性。而胖接口存在明显的弊端,会导致实现的类型必须完全实现接口的所有方法、属性等;而某些时候,实现类型并非需要所有的接口定义,在设计上这是“浪费”,而且在实施上这会带来潜在的问题,对胖接口的修改将导致一连串的客户端程序需要修改,有时候这是一种灾难。在这种情况下,将胖接口分解为多个特点的定制化方法,使得客户端仅仅依赖于它们的实际调用的方法,从而解除了客户端不会依赖于它们不用的方法。 分离的手段主要有以下两种: 1、委托分离,通过增加一个新的类型来委托客户的请求,隔离客户和接口的直接依赖