《敏捷软件开发》读书笔记(2)
《敏捷软件开发》读书笔记(2) 包的划分原则和度量方法 以下原则中,前三个有关粒度,关注于如何把类划分在包里,是自底向上的设计,是关于包的内聚性设计,但是要考虑可开发性和可重用性两者的平衡;而后三个有关耦合,关注包之间的关系,关于包的稳定性设计,是自顶向下的设计思考。 重用发布等价原则REP 重用的粒度=发布的粒度,重用的粒度就是发布的粒度,为重用而发布的包中,不应该包含任何不是为重用而设计的类,也就是不应该包含任何业务定制、环境定制多代码。另外,也要考虑划分,不能强迫使用者引入他们不需要的类。 共同重用原则CRP 一个包中的所有类应该是共同重用的,如果重用了包的一个类,那么就要重用包中的所有类。重点是,相互之间没有紧密联系的类,不应该放在一个包中。否则,要么可能增加软件大小(apk这种),要么是一些不相关的类的更新,会导致所有依赖的地方被迫更新、验证,即使他们完全没有用这些类。 共同封闭原则CCP 一个包多所有类,应该对同一类变更是共同封闭的,也就是会为了同一个原因而修改,不应该包含多个引起变化的原因。一个需求变化到来时,应该将变化封闭在一个包中。(业务复杂,至少在修改问题时,不应该到处修改) 无环依赖原则 没啥好说的,包之间不能出现循环依赖,否则会出现无法构建、晨后综合征、测试困难、构建时间长等问题,可以用如下两个方式解决循环依赖:抵赖倒置、增加一个包,让两个模块都依赖新的包。