• UML-包的设计


    1、准则

    1)、准则1

    包在水平和垂直划分上,要功能性内聚。即:同类关联功能的模块化,将参与共同目的、服务、协作、策略和功能的强相关类型(类或者接口)组织在一起。

    如:在NextGen项目中,Pricing包中的所有类型都与产品定价有关。

    2)、准则2

    由一族接口组成的包,将一组功能上相关的接口放入单独的包,与其实现类分离

    3)、准则3

    从一个包中,将不稳定的包拆出来,独立成新包。从而变成1个稳定包,1个不稳定包。

    假设,有一个含有30个类型的大型包P1,其中有10个类经常被修改和重新发布。怎么办?答:将P1分解成P1-a和P1-b两个包,P1-b中包含这10个经常变动的类。

    这样,开发者不用提心吊胆了。

    4)、准则4

    职责(被依赖或被调用)越多的包越需要稳定。

    就是上文《逻辑架构的精化》中的”业务架构模块“,尽量不要出现,否则前一发动全身。但必须有时,如何增强包的稳定性呢?

    法1:包中仅含或者主要包含接口和抽象类。

    法2:不依赖于其他的包(这种包是独立的),或者依赖非常稳定的包,或者封装了依赖关系已使其不受影响。如:com.foo.nextgen.domain.posruleengine包,将具体的规则引擎实现隐藏在单独一个facade对象之后。实现改变时,依赖于此的包不受影响。

    法3:含有相对稳定的代码,这些代码在发布之前经过充分的测试和精化。如:java.util包

    法4:强制规定具有缓慢的变化周期。如:java类库的核心包java.lang不允许频繁改变。

    5)、准则5

    能抽象出独立包(不依赖别的包或类的包),尽量独立出来。

    如:在com.foo.dao包下有个通用的工具类:JDBCHelper,最好将其放入com.foo.util.jdbc包下。

    6)、准则6

    使用工厂模式减少对具体包的依赖

    领域对象工厂模式(Domain Oject Factory)
    通过领域对象工厂接口创建所有的领域对象是常见的设计方法。

    7)、准则7

    包之间,不要循环依赖

    解决方法:将参与循环的类型分解出来形成较小的新包。

  • 相关阅读:
    201506022038_《JavaScript权威指南》(p48-58)
    201506022038_《JavaScript权威指南-判断两个数组相等》(p38-48)
    201506021641_《JavaScript权威指南》(p25-38)
    Linux平台上转换文件编码
    一台服务器上部署多个Terracotta的方法
    Subversion Backup and Restore
    How to name a slf4j logger
    基于ScheduledExecutorService的并发定时任务处理能力测试
    CodeReview of JDK Source Code
    Share Keyboard, Mouse and Clipboard between Multiple Computers
  • 原文地址:https://www.cnblogs.com/yaoyuan2/p/11534410.html
Copyright © 2020-2023  润新知