给设计原则打个基础

前言

PS:本人边学变写,由于本人能力有限,所以在理解、解释等各方面一定会有所欠缺,如果有什么不对或者不足之处,非常欢迎各位在各种渠道批评指点!
另外设计模式系列会跟随自己的能力or理解or别人的指导不定期更新

面向对象(Object-Oriented,OO)是基础中的基础,亦是重中之重.
面向对象学得好,才能顺利地往设计模式的方向继续前行.

JAVA面向对象最重要的特征就是:封装,继承,多态(所谓的三大特征)。
就个人体会来简单讲一下.

封装

封装通过合并特征和行为来创建新的数据类型.

个人体会:

优点

封装有个好处是实现隐藏:
通过将细节私有化把接口和实现分离开来.

个人觉得封装的主要意义有:

  1. 保护私有数据,只提供方法给外部调用
  2. 抽象出方法,做成util,统一处理,复用,提高效率

缺点

记住不要过度封装!

继承

在Java中,对应extends关键字.

个人体会:

优点

子类继承父类后拥有父类的属性成员,可以很好的复用已有的类,不需要再重复写方法属性了.

缺点

刚开始学习继承的时候很喜欢用,但是后来渐渐地发现继承其实有很大的缺点:

  1. 继承很重,子类拥有父类的所有东西,不管要不要,有没有用.
  2. 父类一改,牵动所有的子类,很明显这不是我们所希望发生的.

所以提倡组合,而少用继承.

多态

在面向对象的程序设计语言中,多态是数据抽象和继承之后的第三种基本特征.
多态也称作动态绑定、后期绑定或运行时绑定.

个人体会:

优点

多态通过分离做什么和怎么做,从另外一个角度讲接口和实现分离开来.
多态不但能够改善代码的组织结构和可读性,还能够创建可扩展的程序.

多态的作用:

  1. 消除类型之间的耦合关系
  2. 可实现动态绑定,增加可扩展性.

多态在设计模式中扮演着非常非常重要的角色.
策略模式,里氏替换原则等就是多态的特性的最好阐述.

缺点

不懂的人可能会混乱..

资料:

Thinking in Java
Effective Java

另外欢迎关注:
我的Github
我的微博
我的微信公众号:

《给设计原则打个基础》 微信公众号

    原文作者:程序亦非猿
    原文地址: https://www.jianshu.com/p/08b73a8351b2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞