面向对象六大原则
<h2>单一职责原则</h2>
<p>单一职责原则的核心就是高内聚,即一个 模块只完成一项功能。单一职责,顾名思义就是一个类只有一个职责,只做一件事情。</p>
<h2>开闭原则</h2>
<p>一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。</p>
<p>开闭原则的关键就是抽象化,我们在代码编写的时候,先利用接口和抽象类构建好一个相对稳定的抽象层,而将具体的功能在实现层中编写。</p>
<h2>依赖倒转原则</h2>
<p>程序要依赖于抽象接口,不依赖于具体实现。</p>
<p>直白的讲就是我们常提到的面向接口编程。声明方法的参数类型、方法的返回类型、变量的引用类型时,尽可能使用抽象类型而不用具体类型,因为抽象类型可以被它的任何一个子类型所替代。</p>
<h2>里氏替换原则</h2>
<p>任何时候都可以用子类型替换掉父类型。</p>
<p>因为子类是增强父类的能力,而不是减少父类的能力,所以用父类型的地方就一定能使用子类型。里氏替换原则可以检查继承关系是否合理,如果一个继承关系违背了里氏替换原则,那么这个继承关系一定是错误的,需要对代码进行重构。</p>
<h2>接口隔离原则</h2>
<p>接口要小而专,绝不能大而全。不能把接口设计的过于臃肿和复杂。</p>
<h2>迪米特原则</h2>
<p>一个对象应该对其他的对象有尽可能少的了解,又叫最少知识原则。</p>
<p>这个具体讲指的就是低耦合,由于每个类尽量减少对其他类的依赖,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。</p>