敏捷设计(1)
拙劣设计的症状:
僵化性(ragidity): 设计难以改变。
脆弱性(fragility):设计易于遭到破坏。
牢固性(immobility):设计难以重用。
粘滞性(viscosity): 难以做正确的事情。
不必要的复杂性(needless complexity): 过分设计。
不必要的重复(needless repetition):滥用鼠标。
晦涩性(Opacity):混乱的表达。
设计原则
单一职责原则(the single responsibility principle) SRP
开放-封闭原则( the open-close principle) OCP
Liskov替换原则(the liskov subsititution principle) LSP
依赖倒置原则(the dependency inversion principle) DIP
接口隔离原则(the interface segregation interface) ISP
设计模式
command 模式 do
Templete 模式: 继承,把具体实现的细节交给对应的类来实现。
Strategy 模式 :策略模式,委托模式
singleton模式强调结构上的单一性,防止创造出多个实例;Monostate强制行为上的单一性,而没有强调结构方面的限制。
Null object 模式消除对null 检测的需要,简化代码。使用该模式,可以确保函数总是返回有效的对象,即使他们失败也是如此,这些失败的对象代表什么也不做。
薪水支付案例:第一次迭代开始
动静态模型的概念
结论:
在一次迭代开始前,在白板当中思考需要实现的用户素材。这种快速的设计大约持续一小时,如果产生了一些UML图,那么这些图会留在白板上面,或者被擦掉,通常不会保留这些UML图。会话的目的是为了发起思考,并为开发人员提供一个公共的、可以依据其展开工作的智力模型,而不是为了确定设计。