三大特性:编程
五大原则:架构
单一功能原则 : 每一个类型(包括接口和抽象)功能要求单一,只负责一件事情。框架
开放封闭原则:一个软件实体应该对扩展开发,对修改关闭。可扩展可是不可更改。spa
核心:用抽象构建框架,用实现类实现扩展。设计
替换原则(里氏代换原则):子类可以替换父类,出如今父类可以出现的任何地方对象
当使用继承时,尽可能遵循历史替换原则,尽可能不要去重写或者重载父类的方法,以避免破坏整个继承体系的 。由于父类在定义或者实现某些方法时,规定了必须遵照的规则和契约。继承
依赖原则:具体依赖抽象,上层依赖下层。核心思想是面向接口编程。接口
两个模块之间依赖的应该是抽象(接口或抽象类)而不是细节。细节(实现类)依赖于抽象。开发
依赖原则基于的事实:相对于实现类的多变性,抽象的东西要稳定得多,基于抽象的构架也比基于实现的架构更加稳定,且扩展性更高扩展
接口分离原则:模块间要经过具体接口分离开,而不是经过类强耦合。例如A类对B类的依赖,能够抽象接口I,B实现I,A类依赖I来实现。可是抽象接口必须功能最小化(与单一功能原则有点不谋而合)。
迪米特原则:最小依赖原则,一个类对其余类尽量少的了解,只与朋友通讯。下降耦合
总结:
依赖原则告诉咱们要面向接口编程;
接口分离原则告诉咱们设计接口的时候功能要单一;
里式替换告诉咱们不要破坏继承体系,而是去扩展;
单一功能原则告诉实现类要功能单一。
开放封闭原则则是总纲,对扩展开放,对修改封闭。