一句话总结面相对象6大原则系列
1.单一职责
引起类变化的原因不能多于一个。也就是说每一个类只负责自己的事情,此所谓单一职责。关于单一职责原则的原理,
我们就不做过多的解释了。重点是职责的划分!重点是职责的划分!重点是职责的划分!重要的事情说三遍。每一个类因该
划分到最小单位,对应的是数据库设计的原子性。
2.开闭原则
一个软件实体应当对扩展开放,对修改封闭
通过接口或者抽象类约束扩展,对扩展进行边界限定,不允许出现在接口或抽象类中不存在的public方法;
参数类型、引用对象尽量使用接口或者抽象类,而不是实现类;
抽象层尽量保持稳定,一旦确定即不允许修改。
3.接口隔离
类的依赖关系应建立在最小接口上,不要都塞在一起。即客户端不应该依赖它不需要的接口。
接口隔离原则就是要求只提供尽可能小的接口,需要高内聚,不需要的行为要隐藏起来
4. 里氏替换
子类必须完全实现父类有的方法,如果子类没有父类的某项东西,就断掉继承;
子类可以有父类没有的东西,所以子类的出现的地方,不一定能用父类来代替;
透明,就是安全,父类的东西换成子类后不影响程序
a、父类已经实现的东西,子类不要去new
b、父类已经实现的东西,想改的话,就必须用virtual+override 避免埋雷
5.迪米特
尽可能少写public方法和变量,不需要让其它对象知道的变量或方法就不要公开。迪米特法则的主要目的是减少模块间的依赖,
降低模块间的耦合度,提高代码的复用性。类中的方法该公有的公有,该私有的私有。
6.依赖倒置
依赖倒置原则就是程序逻辑在传递参数或关联关系时,尽量引用高层次的抽象,不使用具体的类,即使用接口或抽象类来引用参数,声明变量以及处理方法返回值等。
这样就要求具体的类就尽量不要有多余的方法,否则就调用不到。说简单点,就是“面向接口编程”