II 敏捷设计
7、什么是敏捷设计
软件系统的源代码就是它的主要设计文档——Reeves
设计的臭味
脆弱性(Fragility)
“一改就挂”
改动某一处,其他业务不相关的地方挂了
粘滞性(Viscosity)
软件粘滞性
保持系统设计的改动 >难于> 破坏设计的改动方法
多种改动方法
不必要的复杂性(Needless Complexity)
包含当前没用的组件
不必要的重复(Needless Repetition)
“Ctrl + C/V”的编码
晦涩性(Opacity)
编码/模块难以理解
开发人员必须站在代码阅读者的位置去编码
保持尽可能好的设计
每天、每小时、甚至每分钟都要保持软件尽可能地干净、简单并富有表现力
总结
敏捷设计是一个过程
它是一个持续的应用原则、模式以及实践来改进软件的结构和可读性的过程
8、单一职责原则(SRP)
就一个类而言,应该仅有一个引起它变化的原因
9、开放封闭原则(OCP)
软件实体应该是可以扩展的,但是不可以修改的
10、李氏替换原则(LSP)
子类型(subtype)必须能够替换掉它们的基类型(base type)
11、依赖倒置原则(DIP)
12、接口隔离原则(ISP)
III 薪水支付案例
13、Command 和 Active Object 模式
14、Template Method 和 Strategy 模式
15、Facade 和 Mediator 模式
16、Singleton 和 Monostate 模式
17、Null Object 模式
18、第一次迭代S1
19、案例实现
V 气象站案例
23、Composite 模式
24、Observer 模式
25、Abstract Server、Adapter 和 Bridge 模式
26、Proxy 和 Stairway To Heaven 模式
27、案例:气象站