随笔分类 -  敏捷开发

摘要:Agility,指以微小增量的方式构建软件.全局视图和软件一起演化.每次迭代中,都使设计尽可能适合于当前系统,而不会花时间去预测未来的需求,更不会试图构建一些基础结构去支撑未来才需要的特性.更关注的是当前的系统.不进行预先设计,不需要成熟的初始设计.而保持设计尽可能的干净,简单.并使用单元测试和验收... 阅读全文

posted @ 2014-05-15 09:12 RobynHYB 阅读(218) 评论(0) 推荐(0)

摘要:一个类应仅有一个引起它变化的原因.内聚性.每个Responsibility都是变化的一个轴线.当需求变化时,该变化会反映为类的职责的变化当一个类耦合了多个职责时,一个职责的变化会消弱或抑制其他职责的能力.这种耦合导致了fragile的设计.职责.A reson for change.一个类负担的N个... 阅读全文

posted @ 2014-05-15 09:10 RobynHYB 阅读(148) 评论(0) 推荐(0)

摘要:对于僵化性的臭味,应用OCP原则之后,再进行同样的改动时,只需添加新代码,而不必改动已正常运行的代码.扩展模块行为的方式通常是修改模块的Code,不允许修改的模块常常被认为是具有固定的行为.Open:模块的行为是可以扩展的,即可以改变模块的功能.Close:对模块进行扩展时,不必改动DLL,Code... 阅读全文

posted @ 2014-05-15 09:09 RobynHYB 阅读(219) 评论(0) 推荐(0)

摘要:OCP中,继承支持了抽象和多态特性.LSP:子类必须能够替换掉其基类.反例:使用if/else判断类型,以便选择针对特定类型的正确行为.有效性并非本质属性模型的有效性,只能通过它的客户程序来表现.在考虑一个特定设计是否合理时,必须要根据该设计的使用者所作出的合理假设来审视它.这些合理的假设常常就是单... 阅读全文

posted @ 2014-05-15 09:08 RobynHYB 阅读(354) 评论(0) 推荐(0)

摘要:高层模块不应该依赖于底层模块,二者都应该依赖于抽象;细节应依赖于抽象.传统习惯中,高层模块依赖于底层模块,策略依赖于细节的结构.这是要定义子程序层次结构,该层次结构描述了高层模块如何调用底层模块.但是,这也就意味着,底层模块的更改会直接影响到高层模块.而APP的区别就是体现在这些高层模块中的.包含高... 阅读全文

posted @ 2014-05-15 09:07 RobynHYB 阅读(622) 评论(0) 推荐(1)

摘要:ISP用来处理fat接口的缺点.如果类的接口不是内聚的,那么该类就具有fat接口.fat接口可以分解为多个组.每个组服务于不同的客户.ISP承认不需要内聚接口的对象.但是建议客户不应该看到它作为单一的类而存在.客户程序看到的应该是多个具有内聚接口的抽象基类.接口污染.分离客户就是分离接口.客户对接口... 阅读全文

posted @ 2014-05-15 09:06 RobynHYB 阅读(436) 评论(0) 推荐(0)

摘要:包的设计.通过把类组织成package,可以在更高层次的抽象上理解设计.通过包来管理软件的开发和发布.由于类之间的相互依赖关系,包之间会产生依赖关系.包的依赖关系展示了APP的高层组织结构.粒度:内聚性."自顶向上"的将类划分到包中Reuse-Release Equivalence Priciple... 阅读全文

posted @ 2014-05-15 09:04 RobynHYB 阅读(357) 评论(0) 推荐(0)

导航