前言
PS:本人边学变写,由于本人能力有限,所以在理解、解释等各方面一定会有所欠缺,如果有什么不对或者不足之处,非常欢迎各位在各种渠道批评指点!
另外设计模式系列会跟随自己的能力or理解or别人的指导不定期更新
面向对象(Object-Oriented,OO)是基础中的基础,亦是重中之重.
面向对象学得好,才能顺利地往设计模式的方向继续前行.
JAVA面向对象最重要的特征就是:封装,继承,多态(所谓的三大特征)。
就个人体会来简单讲一下.
封装
封装通过合并特征和行为来创建新的数据类型.
个人体会:
优点
封装有个好处是实现隐藏:
通过将细节私有化把接口和实现分离开来.
个人觉得封装的主要意义有:
- 保护私有数据,只提供方法给外部调用
- 抽象出方法,做成util,统一处理,复用,提高效率
缺点
记住不要过度封装!
继承
在Java中,对应extends
关键字.
个人体会:
优点
子类继承父类后拥有父类的属性成员,可以很好的复用已有的类,不需要再重复写方法属性了.
缺点
刚开始学习继承的时候很喜欢用,但是后来渐渐地发现继承其实有很大的缺点:
- 继承很重,子类拥有父类的所有东西,不管要不要,有没有用.
- 父类一改,牵动所有的子类,很明显这不是我们所希望发生的.
所以提倡组合,而少用继承.
多态
在面向对象的程序设计语言中,多态是数据抽象和继承之后的第三种基本特征.
多态也称作动态绑定、后期绑定或运行时绑定.
个人体会:
优点
多态通过分离做什么和怎么做,从另外一个角度讲接口和实现分离开来.
多态不但能够改善代码的组织结构和可读性,还能够创建可扩展的程序.
多态的作用:
- 消除类型之间的耦合关系
- 可实现动态绑定,增加可扩展性.
多态在设计模式中扮演着非常非常重要的角色.
策略模式,里氏替换原则等就是多态的特性的最好阐述.
缺点
不懂的人可能会混乱..
资料:
微信公众号Thinking in Java
Effective Java
网友评论