UML-包的设计

时间:2019-09-17
本文章向大家介绍UML-包的设计,主要包括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

原文地址:https://www.cnblogs.com/yaoyuan2/p/11534410.html