1.单一职责原则(SRP)
通俗来讲,就是每个类(方法)只有一个职责(或者说功能),这样的好处是,代码便于维护,可扩展,使用灵活。
2.开闭原则(OCP)
个人理解,开闭原则就是说,我们的类(对象,方法,模块)应该是可扩展的,并且在升级、更新、维护时不需要修改原来的代码,防止引入bug。当然这只是最理想的状态,但却是我们应该努力的方向。
想要实现开闭原则,首先我们的代码就要满足可扩展,这样就需要大量应用抽象,接口,然后在需要扩展时只要再写一个实现类去实现新功能就好,尽量不要修改原来的代码。
3.里式替换原则(LSP)
里式替换,其实就是继承和多态的实际应用,就是说代码中使用基类的地方,就可以使用其子类,并且不会影响功能的实现。但是反之则不行。
4.依赖倒置原则(DIP)
总的来说还是抽象,高层模块不应依赖低层模块,都应依赖抽象,抽象不依赖细节,细节应依赖抽象。个人认为就是一种通过抽象实现各个模块完全解耦的实现形式。
5.接口隔离原则(ISP)
简单理解就是接口尽量小,功能尽量单一,实现类只依赖最小的接口,从而避免暴露其他的方法,使得代码重构,扩展更加方便简洁。目的就是系统解耦。
6.迪米特原则(LOD)
简单理解就是只把类要调用的方法暴露给它,其它与它无关的方法尽量不让对方看见,目的是实现最大程度的解耦。
总结
面向对象的六大原则,总的来说就是通过接口、抽象、泛型等手段让类或方法尽量简化,减少类之间的相互依赖,提高代码的可复用性,最大程度的实现解耦,方便代码重构,维护和更新。