敏捷软件开发 之 7~9章读书笔记

3月箴言

人的思想是了不起的,只要专注于某一项事业,就一定会做出使自己感到吃惊的成绩来。—— 马克·吐温

开启第二部分:敏捷设计

一、拙劣设计的症状:

导致这些症状出现的原因:

1、最最最主要的原因就是代码界的段子:CV战士(我想大多数的代码搬运工是可以明白的,哈哈哈)

2、不断变化的需求(这个是无法避免的,需求一个持续变动的事实)

敏捷设计:是一个过程,而不是一个事件!它是一个持续的应用原则、模式以及实践来改变软件的结构和可读性的过程。它致力于保持系统设计在任何时候都尽可能的简单、干净以及富有变现力。

个人理解就是:接受变化,学习使用软件设计原则、模式,让程序健壮、易懂!(毕竟看代码的不是机器)

二、部分面向对象设计原则

三、单一职责原则(SRP):就一个类而言,应该仅有一个引起它变化的原因。

如果一个类有多个引起它变化的原因,那么这个类就具有多个职责。

如果一个原因会引起几个职责同时变化,这种情况下不在拆分这几个职责;如果一个原因仅引起一个职责变化,另一个职责依赖于其他原因变化,这种情况需要将这两个职责分离以满足SRP原则。

关于示例,在之后的编写过程中完善再在本次文章中添加!

四、开放-封闭原则(OCP):软件实体(类、模块、函数等)应该是可以扩展的,但是不可以修改的。

1、“对于扩展是开放的”:模块的行为可以扩展,也就是可以改变模块的功能。

2、“对于更改是封装的”:对模块的行为扩展时,不必改动模块的源代码或者二进制代码。

这一原则的关键是抽象。

模块可以操作一个抽象体,由于模块依赖于一个固定的抽象类,所以对于它的更改可以是关闭的,同时,通过这个抽象体派生,也可以扩展此模块的行为。

根据文中的示例个人理解是:

1、对于某一模块,创建一个抽象类(我个人理解为基类),包含基础属性和方法等;

2、具体的情况,创建该基类的一种子类,子类中覆写基类的属性、方法以满足该子类情况的实现;

3、如果新增了一种基类实现,就创建一个新的该基类的子类,用于扩展该模块,而不需要修改基类。

关于抽象的具体做法:当程序中出现频繁变化的那些部分做出抽象!

PS:软件开发原则、模式学习实践之路任重道远!

猜你喜欢

转载自www.cnblogs.com/lisaloveyou1900/p/10541822.html
今日推荐