依赖倒置抽象的概念:<br>1、高层模块不应该依赖底层模块,两者都应该依赖其抽象。<br>2、抽象不应该依赖细节。<br>3、细节应该依赖抽象。<br>依赖倒置的具体的表现:<br>1、模块间的依赖通过抽象发生,实现类之间不直接发生依赖关系。(依赖关系通过接口或者抽象类)<br>2、接口或者抽象类不依赖于实现类。<br>3、实现类依赖接口 或者 抽象类<br>上面提到的可以用一句话概括,面向接口编程(面向对象设计的精髓)。<br>优点:<br>采用依赖倒置原则,可以减少类之间的耦合性。提高系统的稳定性,提高可读性和可维护性。<br>当需求的变更时,最终只需要修改高层的业务场景类(也就是调用的地方)<br>依赖倒置对并行开发的影响:<br>1、只要定义两者之间的接口(或者抽象类),就可以独立开发了<br>2、项目单元测试也可以独立地运行,就可以测试驱动开发(这是依赖倒置的最高应用场景)<br>抽象更深入的理解:<br>1、抽象是对实现的约束,对实现者而言,是一种契约(约束作用)<br>2、约束自己也约束别人,保证双方按照契约(抽象)就行开发<br>依赖倒置中依赖的三种方法:<br>1、构造函数,传递依赖对象 例如:public Driver( ICar_car){}<br>2、通过setter 方法 例如:public void setCar(ICar_car){}<br>3、接口声明 例如:public class Benz implements ICar{}<br>践行依赖倒置原则:<br>1、每个类尽量都有接口 或者 抽象类,或者抽象类和接口两者并存<br>2、变量的表面类型尽量是接口或者是抽象类<br>3、任何类不应该从具体类派生<br>4、尽量不要覆写基类已经实现的方法<br>5、结合里氏替换原则使用<br>通俗讲:<br>1、接口负责定义公共的属性和方法,并且声明与其他对象的依赖关系<br>2、抽象类负责公共构造部分的实现<br>3、实现类实现业务逻辑,并且适当进行细化扩展<br>总结:<br>1、变量的表面类型尽量是接口或者是抽象类<br>2、每个类尽量都有接口 或者 抽象类,或者抽象类和接口两者并存<br>3、记住一点,面向接口编程,就抓住了依赖倒置原则的核心
4个字母的英文单词: tree 树、edit 编辑、girl 女孩、wake 唤醒、envy 羡慕。<br>一、tree <br>英[tri:] 美[tri] <br>n. 树; 木料; 树状图; 宗谱; <br>vt. 把…赶上树; 使处于困境; 把鞋型插入(鞋内); <br>[例句]I planted those apple trees.<br>我栽了那些苹果树。<br>[其他] 第三人称单数:trees 复数:trees 现在分词:treeing 过去式:treed过去分词:treed <br>二、edit <br>英[ˈedɪt] 美[ˈɛdɪt] <br>vt. 编辑; 剪辑(影片,录音); 校订; 主编; <br>n. 编辑; <br>[例句]The majority of contracts give the publisher the right to edit a book after it's done.<br>大多数合同都赋予出版商在书稿完成后进行校订的权利。<br>[其他] 第三人称单数:edits 现在分词:editing 过去式:edited 过去分词:edited <br>三、girl <br>英[gɜ:l] 美[gɜ:rl] <br>n. 女孩; 姑娘,未婚女子; 女职员,女演员; (男人的) 女朋友; <br>[例句]I must have been a horrid little girl.<br>我一定是个人见人烦的小女孩。<br>[其他] 复数:girls <br>四、wake <br>英[weɪk] 美[wek] <br>vi. 醒,醒来; 苏醒,复活; 警觉; 弄醒,叫醒; <br>vt. 激发,唤醒; 使意识到,使警觉; 为…守夜; <br>n. 守灵,守夜; (船航过时的) 尾波; 年度假期; <br>[例句]It was cold and dark when I woke at 6.30<br>我6点半醒来时,天又冷又黑。<br>[其他] 第三人称单数:wakes 现在分词:waking 过去式:woke过去分词:woken <br>五、envy <br>英[ˈenvi] 美[ˈɛnvi] <br>n. 羡慕; 嫉妒,妒忌; <br>vi. 感到妒忌; 显示出妒忌; <br>[例句]Gradually he began to acknowledge his feelings of envy towards his mother<br>渐渐地,他开始承认自己羡慕母亲。<br>[其他] 第三人称单数:envies 复数:envies 现在分词:envying 过去式:envied过去分词:envied