2019-11-29
今天继续打卡学习极客时间上的专栏“设计模式之美”,
本篇是专栏第11, 12节的学习笔记,是专栏中介绍"面向对象"这一设计原则和设计思想的两节。
笔记
#
这两节分上、下两节主要介绍了在Java Web开发中盛行的传统的贫血模型开发模式,是典型的面向过程的编程风格;而基于充血模型的DDD开发模式,是面向对象的编程风格。
然后作者结合一个虚拟钱包系统的例子给出了两种开发模式的示例代码,只是示例代码略微简单,作者介绍的设计思路在示例代码中体现不大。
...2019-11-25
今天继续打卡学习极客时间上的专栏“设计模式之美”,
本篇是专栏第9节的学习笔记,第10节是专栏中介绍"面向对象"这一设计原则和设计思想的一节。
笔记
#
组合优于继承,多用组合少用继承是面向对象编程中非常经典的一条设计原则。
继承虽然是面向对象的四大特性之一,使用继承可以解决代码复用的问题,但也有其缺点: 继承层次过深、过于复杂会影响到代码的可维护性
...2019-11-22
今天继续打卡学习极客时间上的专栏“设计模式之美”,
本篇是专栏第9节的学习笔记,第9节是专栏中介绍"面向对象"这一设计原则和设计思想的一节。
笔记
#
基于接口编程(Interface-based programing)
是一个设计原则,理解这条原则里的接口
两字,接口
是一组协议
或约定
。
接口这个词在不同场景下有不同的含义,比如后端服务提供给前端服务的"接口"、类库提供的"接口"、而一组自定义的私有通信协议也可以被称作"接口",而具体编程语言中的接口一般指的是这种编程语言中的"接口或抽象类"的语法特性。我们再来看一下维基百科中“基于接口编程”的定义:
基于接口编程也称基于接口的架构,它是一种在没有模块系统的面向对象程序设计语言中的组件层面实现模块化编程的架构模式。
...2019-11-20
今天继续打卡学习极客时间上的专栏“设计模式之美”,
本篇是专栏第8节的学习笔记,第8节是专栏中介绍"面向对象"这一设计原则和设计思想的一节。
笔记
#
很多面向对象的语言都提供"抽象类"和"接口"这两个语法特性。抽象类和接口是实现面向对象四大特性、很多设计模式、设计思想、设计原则的基础。
但并不是所有编程语言都支持者两个语法特性,我们可以通过一些手段来模拟这它们。
...2019-11-18
今天继续打卡学习极客时间上的专栏“设计模式之美”,
本篇是专栏第7节的学习笔记,第7节是介绍"面向对象"这一设计原则和设计思想的一节。
笔记
#
本节主要介绍了几种在使用面向对象语言进行编程时违反面向对象编程风格的代码设计(作者主要从Java开发的角度):
...2019-11-15
今天继续打卡学习极客时间上的专栏“设计模式之美”,
本篇是专栏第6节的学习笔记,第6节是专栏中介绍"面向对象"这一设计原则和设计思想的一节。
常见的编程范式
#
本节主要对比了面向对象与面向过程的优势,是偏理论性的一节。提到了大家比较熟知的三种编程范式: 过程式
、面向对象
、函数式
。
因为函数式编程和GOF设计模式
的套路关系不大,所以作者王争老师也说了在专栏中不会涉及函数式编程。
另外在编程语言中还有一种面向消息
的编程方式,本节没有提及。
...2019-11-13
最近在学极客时间上的专栏“设计模式之美”,决定跟随专栏的更新,立一个flag,坚持打卡每节都写一篇笔记,作为对学习过程的巩固,以加深理解和思考。本篇是专栏第5节的学习笔记,第5节是专栏中介绍"面向对象"这一设计原则和设计思想的一节。
在过去我们学习各种面向对象编程语言(比如java)时,一般多会说面向对象有三大特性: 封装、继承和多态。而专栏中也将"抽象"作为第四个特性加入其中。
封装(Encapsulation)
#
封装即信息隐藏或数据保护,“数据结构"通过暴露有限的访问接口,授权外部仅能通过"数据结构"提供的方法(函数)来访问其内部的数据。
...