设计模式->面向对象的特点

面向对象的特点,封装、继承、多态,这三个特点也是为了解决面向过程的三个问题而来的,具体如下:

第一个就是作用域的问题

这个就是面向对象的封装。例如表达一个复杂的作用域,如何表示呢,这方面面向过程早就想过了,用结构体,当然结构体能够胜任部分需求,但是结构体只能表示属性没法表示方法。那门如何表示方法呢,向前在走一步,将方法和属性一起分装起来,这个就有个插曲,有个小分支就是JS,将这些都封装到构造函数里面去了。这就是JS也有资格叫自己是基于对象的原因。还有个问题,是这些作用域应该隔离,C就没有隔离吗,当然有,例如局部变量,全局变量。但是隔离方法呢,于是乎就有了JAVA的伟大发明类。类的本质是什么,我认为就是在C的结构体的基础上加入了方法,不信,你去看PHP的源码,类就是结构体演变过来的。

第二个问题是重复代码的问题

反应在JAVA上就是继承,一句话本质是什么呢,将公共的功能抽取出来,这个站在C语言的方面就是公共方法,站在JAVA的角度上说是公共类,将公共的属性和行为抽象出来,不然每个类里面大量重复的代码,累吗。

第三个问题是动态变化的问题

就是依据上下文获取一类对象,但是不同的对象的行为有差异。举个例子,同样是教育小孩,父母和教师的教育方式肯定是不同的,即使同样一节课。那门我们将父母和教师抽象成人这个类的子类,那门小孩说,XXX我这个不会了,请教我下,那么叫来的是父母,要执行父母的教育的方法,要是叫来了老师,要执行老师的教育方法。这就是多态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值