开闭原则:
对扩展开发,对修改关闭。个人认为最重要的一个原则,尽可能的不对资源类进行操作,而是对资源类的操作类进行操作。
里氏替换原则:
继承必须确保超类所拥有的性质在子类依然成立。也就是说,子类继承父类的时候,尽可能的去添加方法实现,想要的功能,而不是去覆盖父类的方法。否则,多继承的情况下,想想都挺糟糕的。
依赖倒置原则:
面向接口编程,而不是面向实现编程。
单一职责原则:
控制类的力度大小,将对象解耦,提高棋内聚性。也就是说,一个类的方法,最好只干一件事,尽可能的避免和其他的方法干的事有联系,降低耦合。
接口隔离原则:
要为各个类建立他们所需要的专用接口。和单一职责原则同样的道理,来降低耦合。
迪米特法则:
只与你的朋友交谈,避免和陌生人说话。也就是说,职场里面,你有越级上报的能力,但是你最好还是告知你的上一级领导,然后由你的上一级领导再去告知他的领导,不要越级上报,否则人情世故越扯越乱,事干不好。放在代码里面,还是用于降低耦合度。
合成复用原则:
尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系。个人觉得你使用组合的时候,不要去考虑你需要用的类或接口的全部实现,只要知道它有我需要这个功能,我不想去了解它的其他功能和属性,这样就减少很多考量,而继承的话,则需要考量的东西多很多。