a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 135|回复: 0

[其他] JAVA技巧:ACKAGES之间建立关联

[复制链接]
发表于 2012-8-4 12:28:23 | 显示全部楼层 |阅读模式
作为一个开发人员,我们知道一个矫捷的系统能够保证辖档图好的兼容性及扩展性。当说起系统的矫捷结构这一话题时,我们凡是都说到类的联系关系,而很少提到系统中package的结构。事实上,当真设计package结构对系统的矫捷性有着很主要的浸染。在本文中,我们将谈判java轨范中设计package联系关系的主要性。在后面的章节里,我们会陆续讲述当设计package联系关系时一些具有指导性的启发式常识。+ I( O& o2 o* _
  体味更多的Java常识你可以阅读本站关于Java的文章,以进修更多的Java常识。, j( i& s9 s+ `( E8 `
  Package联系关系
* G0 D! O( |1 B2 d6 X+ p* N  当设计一个系统的package结构时,凡是很少花时刻在packages之间的联系关系设计上,Packages只是被认为是类的容纳器。事实上,package之间的联系关系才是良多系统模式的基本。肤浅的理解系统模式的粗枝断叶不能声名这些模式完整地匹配轨范的内容,相反,理解最根基的概念,我们才可以表达良多功能强年夜的系统模式。设计package联系关系  j2 b  ?' S" }- E8 V4 r
  使用尺度统一模子说话(UML)可以很轻易地描述packages之间的联系关系。两个packages之间的联系关系称为package隶属。在图A中,我们可以看到描画client和service的两个packages,其中每一个packages包含一个简单的类。在package client一端,类的名称为client,在package service一端,类的名称为service。点画线毗连了这两个packages,这声名client package中至少有一个类与service package中的一个类有联系关系。这一点画线即为一个隶属关系,也是一个UML模子成员。这一点画线的标的目的是单一的,声名service package中的类与client package中的类没有结构上的联系关系。Figure A6 ~' t, ?# U4 o6 V& K) N7 Y
  Package dependency diagram细心查看两个类之间的关系,显然,service中的类的改变必然会影响client中的类,因为这两个类之间有联系关系。相反则否则,client中类的改变不会影响到service中的类,因为点画线是有标的目的性的。Packages之间的隶属关系与类之间的关系是一致的。因为package client对package service有一个依靠关系,service package内容的改变必然会影响到client package中的内容。这些package之间的联系关系的值具有两重意思。第一,轨范中的packages必然比类少。图A中,我们可以看出,client package内容的改变不会影响到其他的package,因为没有其他的package依靠于client package。我们在开发过程中可以集中精神在类的联系关系及类改变所带来的影响上。Package联系关鲜ё仝系统设计中据有很主要的部门。Package与类的联系关系设计会生成各自自力部门。类联系关系供给很细微的结组成看,而package则供给相对粗拙的查看。因为这些查看结不美观代表不异的系统,查看之间要彼此匹配,如不美观不匹配则必然要批改。
. ]- f, H) C: o  Package联系关系应该是单一标的目的
! a1 e+ ~! w5 N) x" u0 S  开发人员应该力争于联系关系的最小水平。双向联系关系会增添这些package的联系,减小系统的完整性。双向联系关系呈现形式有两种:直接或借居的形式。直接形式意味着两个package之间都有依靠关系,如图B中的左边所示。Figure B
; y1 k4 g9 ^8 q( r! M2 g  Package relationships直接双向联系关系斗劲轻易识别并轻易批改。转移一个package中的成分到另一个新建的package会生成新的隶属关系,如图C的左边所示。Figure C0 {0 W% ^* X5 A0 S
  Direct bidirectional relationship$ @) c. e4 ~4 D& W4 y  O  v( G& l. e
  借居双向联系关系斗劲难于识别。最轻易的识别体例是,生成代表所有packages联系关系的一个图形,选择最简单的package作为肇端点,顺着林站之间的隶属关系查找,如不美观最后又返回到肇端点,则这一标的目的即是借居双向联系关系。注重的关头事项. A3 Q8 _" A( o1 P; `, ^
  让我们总结一下设计package联系关系时应该注重的关头事项。Package之间的联系关系——package之间的单一标的目的会减小系统的联系关系,而且轻易维护。1 Y- O2 F: q5 W
  双向联系关系的影响——双向联系关系会限制良多功能,而且默示出斗劲差的package进级性。
* z& N; q5 B1 B1 R$ m9 V8 p  层——凡是的,级别高的层会依靠级别低的层。所以级别低的层会很少与其他层有联系关系,这就增添了packages的使用功能。8 ?( w" b! r+ v% a8 w( t( n
  预见功能/ P( ]- Q: o% o2 F& W( {5 R/ B
  package联系关系凡是是轨范完成了往后才记起的设法。一个优异的系统不仅能纺暌钩出精采的类弹性,而且也纺暌钩出精采的package弹性。经由当真考虑的package联系关系将会发生斗劲少的错误。设计package联系关系时出格注重的是:力争单向联系关系。因为它能削减系统的毗连,增添系统的矫捷性,这样就可以提高系统的维护性和不变性。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-9-27 21:16 , Processed in 0.212632 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表