#被记住的永远是疯子
[学习笔记]:学习面向对象编程思想,不论你学习什么编程语言,掌握面向对象会让你写代码的‘能力’得到提升。note:本文档为学习笔记,用于个人理解并分享给大家。
主要概念
首先,我们需要理解什么是面向对象?
面向对象:考虑问题,要从对象的角度出发。
什么是对象?Jason告诉你,世间万物皆对象。那么通俗点说,面向对象就是针对某一个问题:谁?干嘛?(够通俗吧,嘤嘤嘤!)
掌握面向对象,需要掌握面向对象的3大特征和6大基本原则。
主要思想
面向对象的主要思想总结为24个字:
识别对象/分配职责/建立交互
封装变化/隔离变化/执行变化
最后12个字描述的内容大家是不是很眼熟?没错,就是面向对象的3大特征。
别急,看下面↓↓↓
特征
封装
-
数据:将多个基本类型,合成一个自定义类型。
优势:复合人类的思考方式 -
行为:对外提供简单的必要的功能,隐藏实现的细节。
优势:模块化开发,简化编程。 -
设计:
分而治之:分解需求,让多个类协同完成。
封装变化:每个变化点单独做成一个类。
--------------------------------------------------
高内聚:类的内部处理一个变化点。
低耦合:类与类的关系,尽量做到互不影响。
继承
重(chong,二声)用现有类的概念,并在此基础上进行扩展。
(子类的共性) (子类相比父类更加具体)
作用:隔离客户端代码与实现方式(隔离用与做)
多态
调用父一个方法,执行子类方法,即:调父执子。不同实现方式不一样,所以表现形态就不一样。
作用:通过重写执行不同变化点
基本原则
开闭原则:增加新功能,不修改客户端代码。
单一职责:每个类有且只有一个改变的原因。
依赖倒置:使用抽象(父),而不是用具体(子)。
组合复用:使用关联关系,代替继承关系。
里氏替换:父类出现的地方,可以被子类替换,替换后,保持原有功能。
迪米特法则:低耦合,每种功能之间,互不影响。