大数据java基础-面向对象之设计原则

声明:鄙人一直学习和使用的都是c语言,所以对面向对象的理解非常浅薄,该文内容都是个人理解和观点,如有错误,欢迎大家指正

六大设计原则

里氏原则

覆盖是个垃圾特性,请尽量避免利用

子类对父类进行扩展的时候,尽量不要修改父类原有的特性

依赖倒置原则

把面向对象编程理解成面向接口编程,或者说是面向抽象类编程

当使用一个具体类的时候,就要考虑是否会对该类进行扩展,显然用抽象类和接口更易于扩展

接口隔离原则

使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口

单一全责原则

接口和类应该只负责单一职责,如果有多个职责就要进行拆分,尼古拉斯赵四说过:一次不行就两次

迪米特法原则

一个对象要保持对另一个对象最少的了解

大数据java基础-面向对象之设计原则

大数据java基础-面向对象之设计原则

这两种的区别是什么呢?

表面看是一样的,只是第一种多定义了一个临时变量来存放Subcompany的subemployee,但正是由于这一点,将subcompany的一个属性暴露给了company,即让company对subcompany有了更多的了解

开闭原则

对扩展开放;对修改闭合


个人学习后得出的几点总结,未定正确

1. 如果不用到多态,继承就是无用的

2. 能用接口就不要用继承,继承的坏处远大于其好处,继承会造成父类和子类的强耦合,而强耦合往往是系统失控的根本

3. 多用组合少用继承

    组合和继承的区别:继承是将公共的属性放到父类,而组合是将公共的属性放到其他类