1、开闭原则:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。
2、里氏替换原则通俗来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。
3、依赖倒置原则核心思想是:要面向接口或者抽象类编程,不要面向实现编程
4、单一职责原则:规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分。提出对象不应该承担太多职责
5、接口隔离原则:要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用(就是说尽量实现多个接口,不要实现一个功能很多的接口)
6、迪米特法则:只与你的直接朋友交谈,不跟陌生朋友说话
直接朋友:B类是A类的成员变量、方法参数、方法返回值,则称B类是A类的直接朋友
陌生朋友:如果B类是A类方法中的局部变量,则称B类是A类的陌生朋友
7、合成复用原则:又叫组合/聚合复用原则。它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。如果要使用继承关系,则必须严格遵循里氏替换原则。合成复用原则同里氏替换原则相辅相成的,两者都是开闭原则的具体实现规范。