《设计模式之美》理论二:封装、抽象、继承、多态分别可以解决哪些编程问题?

王争《设计模式之美》学习笔记

书本概念

封装

  1. 封装也叫作信息隐藏或者数据访问保护。
  2. 类通过暴露有限的访问接口,授权外部仅能通过类提供的方式(或者叫函数)来访问内部信息或者数据。
  3. 对于封装这个特性,我们需要编程语言本身提供一定的语法机制来支
    持。这个语法机制就是访问权限控制。
  4. 类仅仅通过有限的方法暴露必要的操作,也能提高类的易用性。

抽象

  1. 在面向对象编程中,我们常借助编程语言提供的接口类(比如 Java 中的 interface 关键字语法)或者抽象类(比如 Java 中的 abstract 关键字语法)这两种语法机制,来实现抽象这一特性。

继承

  1. 继承是用来表示类之间的 is-a 关系,比如猫是一种哺乳动物。
  2. 继承最大的一个好处就是代码复用。

多态

  1. 多态是指,子类可以替换父类,在实际的代码运行过程中,调用子类的方法实现。
  2. 对于多态特性的实现方式,除了利用“继承加方法重写”这种实现方式之外,我们还有其他两种比较常见的的实现方式,一个是利用接口类语法,另一.个是利用 duck-typing 语法。

个人理解

  1. 第一轮理解,在许多年以前,仅停留在书本和概念表面。
  2. 读完本节课,大致总结落到编码实处:封装就是说类,抽象就是说接口,继承就是说父类子类,多态就是说子类中方法的重写。 那么封装对应抽象,就是类对应接口。类有继承,子类可以继承可以重写。
  3. 再引申思考,觉得课程中有一种思想特别给我新的领悟,抽象是一种设计思想,不是简单地指接口类,类中函数设计也是一种抽象的思想,那么这么说下来,封装也不能说只是访问保护,也是抽象函数设计和代码重用。
  4. 再白话点说,接口也就是接口类,和类一样,都是源自封装的方法和抽象的思想。那么类的继承和接口类的实现是同样的方案。接口的实现其实每个都是相当于重写,因为接口类和类的区别就是,接口类中只定义方法名没有具体内容。

举例

  1. 一个后台项目,增删改查主要功能,六个功能项,六个列表页、详情页、新增页和修改页。
  2. 可以封装一个基础类,里面有查询字段、修改字段、显示字段等属性,增加和修改、条件查询列表、id查询详情三个方法。
  3. 六个功能项,每个类继承这个基础类,只要赋值自己对应的属性,就可直接复用基础类中的三个方法。子类中不需要写任何代码就能实现列表页、详情页、新增页和修改页。
  4. 六个功能项,有某个功能项中的某一方法和基础类中不同,可以在子类中重写此方法,即是多态。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值