敏捷开发学习-5

包的设计原则

    不能自顶向下的设计包的结构。包结构应该是随着系统的增长,变化而逐步演化的。

   包的依赖关系和描绘应用程序功能之间几乎没有关系。不能把包的依赖关系跟程序功能挂钩,包的依赖性是根据包的封闭,自适应行,系统的层次结构来进行依赖;从底层实现到高级表现。

   包的依赖性,稳定性

     依赖性度量:一种方法是计算出改包的依赖关系数目。

    (Ca) 输入耦合度:指处于该包的外部并依赖于该包内的类的类的数目。

    (Ce)输出耦合度:指处于该包的内部并依赖于该包外的类的数目。

    I(不稳定性) = Ce/(Ca+Ce);可以看出输出耦合度越大 稳定性越差。

   每一个软件模块都有三项职责:

        a 它运行起来所完成的功能

        b  它要对应变化。

        c 要和阅读他的人进行沟通

要实现新需求时,团队抓住这次机会去改进设计以便设计对于将来的同类变化具有弹性,而不是设法去给设计打补丁。

如果一组类都支持一个公共的职责,那么它们应该从一个公共的超类,继承该职责,如果公共的超类还不存在,那么就创建一个,并把公共的职责放进其中。毕竟这样一个类的有用性是确定无疑的;你已经展示了一些类会继承这些职责。然而稍后对系统的扩展也许会加入一个新的子类,该子类很可能会以新的方式来支持同样的职责。此时,这个新创建的超类可能会是一个抽象类

你可能感兴趣的:(敏捷开发学习-5)