structure101_使用structure101分析软件包的依赖关系

structure101

稳定应用程序的一个关键是结构良好的代码库。 我们知道我们应该建立尽可能多的黑匣子,因为一旦完成一个黑匣子,我们就不必再考虑其内部了。 您只需要使用您或其他团队成员通过明确定义的界面编写的代码即可。 这使您可以专注于要添加的下一个功能。

当我们想到黑匣子时,我们通常会想到类或整个jar包。 当然,课程应该是黑匣子,对此不做任何讨论。 jar包也是如此。 但是在类和jar包之间有另一层结构,通常不能直接将其视为黑盒:包。

一揽子计划通常是二等公民,对其相互关系的分析不够深入。 但是有一个很好的工具可以进行这种分析: Structure101 。 通常,它可以通过组织良好的图来帮助您监视和验证项目的依赖关系结构和复杂性。

因此,让我们从一个示例项目开始。 为此,我采取了自己的项目之一: japicmp是一种工具,用于根据更改的方法和类来计算两个jar存档的API之间的差异。 structure101有一个很棒的组合视图,它向您显示了项目包之间的依赖关系。 当前japicmp的外观如下:

结构101_之前

显然,我们可以看到例如cli软件包,它负责命令行解析,它使用异常以及config软件包,并且由main()方法所在的主软件包本身使用。 使用cli软件包,一切似乎都可以。 但是,三个软件包cmp,util和model呢? 类和方法(即业务逻辑)之间的差异计算位于程序包cmp中。 因此,它应该使用模型以及util包。 但是,这两个软件包不应具有任何向后依赖性。 此问题也显示在矩阵视图中:

structure101_before0_matrix

当我们仔细查看这三个程序包之间的纠缠时,我们发现util程序包中使用了cmp程序包中的类AccessModifier:

结构101_before2

除此之外,该类还用于模型中。 这清楚地表明,该类应该像在cmp包中那样留在模型包中。 这似乎是有道理的,因为类或方法的访问修饰符是jar存档模型的一部分,并且不属于业务逻辑。 如果将此类移至模型包,则会得到以下结果:

structure101_after

看起来好多了。 包装结构内没有任何缠结。 精美的布局还清楚地表明,整个应用程序都取决于模型,因为程序包位于图的底部。 从主程序包中调用驻留在cmp中的业务逻辑,并按需使用util,config和model。 对于cli和xml输出的实现所在的输出包,情况也是如此。 计算后,此软件包将使用配置以及模型。

结论

软件包不应是二等公民,而是可以帮助您构建应用程序的结构,以便轻松查看代码和单独的功能。 诸如structure101之类的工具可帮助您分析软件包之间的依赖关系,因此使软件包成为一侧的jar和另一侧的类之间的重要层次。

参考:在Martin's Developer World博客上,我们的JCG合作伙伴 Martin Mois 使用structure101分析了软件包的依赖关系 。

翻译自: https://www.javacodegeeks.com/2013/11/analyze-package-dependencies-with-structure101.html

structure101

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】广东开放大学 机械制造基础 形成性考核 (55)

选择题 题目:车削加工中大部分切削热传给了( ) 题目:下列诸因素中,哪个是造成45钢淬火硬度偏低的主要原因( ) 题目:切削用量中对切削力影响最大的因素是背吃刀量。 题目:焊接接头中的…

【渝粤教育】广东开放大学 电子商务(本) 形成性考核 (21)

选择题 题目:( )的域名含义是政府组织。 答案:看左侧 题目:( )是指包含巨量资料的信息资产? 答案:看左侧 题目:www.sina.com.cn的二级域名是( &…

蓝桥杯基础模块6_2:定时器进阶

一、模块题目 二、原理图 1、数码管

JDK 9 / JEP 280:字符串串联永远不会相同

JEP 280 (“ Indify String Concatenation”)是与JDK 9结合实现的,根据其“摘要”部分,“更改了javac生成的静态String -concatenation字节码序列,以使用对JDK库函数的invokedynamic调用。 ” 通过查看在JDK 9之前和JD…

【渝粤教育】广东开放大学 综合英语1 形成性考核 (36)

选择题 题目: I love traveling in the countryside, but I don’t like losing my way. I went on a trip recently, but my trip took me longer than I expected. “I’m going to Woodford Green,” I said to the conductor as I got on the bus, “b…

蓝桥杯基础模块7:PWM脉宽调制

一、 模块题目 二、 原理简述 脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。随着电子技术的发展,出现了多种脉冲宽度调制(Pulse width modulation,PWM)技术,其中包括:相电压控…

【渝粤教育】电大中专Office办公软件 (14)作业 题库

1学习好Office办公软件这门课程,应该()。 A重视理论学习 B重视上机操作,多练多试,还要学习好基础的知识 C只看不练 D可以随便学习一下 正确 正确答案:左边查询 学生答案:B 2在使用Office2016时遇…

蓝桥杯基础模块8_1:串口通信收发

一、模块题目 二、原理简述 1、串口重要概念概述 <1> 串行通信是指数据一位接一位地顺序发送或接收。 <2> 串行通信有SPI、IIC、UART等多种,最常见最通用的是指UART,无特殊说明,本文指的就是UART。 <3> 串行通信的制式有:单工、半双工、全双工三种。 &l…

【渝粤教育】电大中专中医基础知识 作业 题库

1.“证”是指 A.疾病的体征与症状 B.对疾病的症状与体征的分析 C.对疾病某一阶段的病理概括 D.对疾病全过程规律的认识 E.对疾病的症状与体征的调查 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;未作答 2.中医学认识疾病和治疗疾病的基本思路是 A.恒动观念 B.同病异…

从JDK 12删除原始字符串文字

已经提出从JDK 12 &#xff08;它将在12月13日进入Rampdown第一阶段 &#xff09;中删除原始字符串文字&#xff08;预览 &#xff09;。 Brian Goetz撰写了删除此预览功能的动机的详细描述 &#xff08; JEP 326 &#xff09;。 在Java subreddit上也对此进行了讨论。 在帖子“…

【渝粤教育】电大中专公共基础课程_1作业 题库

1中央广播电视中等专业学校是一所依托&#xff08;&#xff09;设置的运用现代化教学手段和多媒体教学开展中等专业学历教育的开放性学校。 A国家开放大学 B技工学院 C技能培训学校 正确 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2并面向社会直接招收初中毕业生和在…

蓝桥杯基础模块8_2:串口进阶

一、模块题目 二、原理简述 串行接口作为51单片机的重要外设,编程操作并不复杂,但在实际的项目应用中,由于数据结构和通信规约的不同,其程序逻辑也有各种变化。 一般情况下,上位机的命令可能不是一个字节,而是多个字节组成的命令帧,有的长度固定,有的长度变化;而且要…

【渝粤教育】电大中专常见病药物治疗 (3)作业 题库

1.以下对‘发热的指标’的叙述中&#xff0c;不正确的是&#xff08;&#xff09;。 A.腋下温度超过37.0℃ B.口腔温度超过37.3℃ C.直肠温度超过37.6℃ D.腋下温度超过37.6℃ E.昼夜体温波动超过1℃ 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;E 2.发热的程度按体…

蓝桥杯基础模块9:IO口扩展与存储器映射

一、模块题目 二、原理简述 三、源码 (1)I0扩展 //头文件 #include "reg52.h" //延时函数 void Delay(unsigned int t) {

【渝粤教育】电大中专建设工程法规 (3)作业 题库

1建造师在工作中&#xff0c;必须严格遵守法律、行政、行业管理规范、职业道德。 A正确 B错误 正确 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2注册建造师应当在相应的岗位上执业。但同时&#xff0c;国家鼓励和提倡注册建造师()。 A一师专岗 B一师多岗 C专岗专职 …

netty 压缩比_使Netty 4中的HTTP内容压缩工作

netty 压缩比Netty实际上是一个很棒的框架&#xff0c;提供了构建高性能HTTP服务器所需的所有功能。 令人高兴的是&#xff0c;几乎所有东西都是开箱即用的&#xff0c;只是必须以正确的方式组合在一起。 内容压缩 &#xff08;gzip或deflate&#xff09;也不例外。 但是&#…

蓝桥杯单片机基础学习00_1

一、基础准备 1、烧录软件 (1)单片机型号:IAP15F2K61S2 (2)输入用户程序运行时的IRC频率:11.0592MHz 2、CT107D单片机综合实训平台 CT107D:单片机芯片(全I/O兼容8051系列,为保留P3.6,P3.7的WR,RD功能由P4.2,P4.4替换。);显示模块;输入/输出模块;传感模块;存储/A…

带有Oracle Digital Assistant和Fn Project的会话式UI

在这里和那里&#xff0c;我们看到许多预测&#xff0c;很快聊天机器人将在用户与其系统之间的通信中扮演关键角色。 我没有水晶球&#xff0c;也不想等待这个“很快”&#xff0c;所以我决定现在就使这些预言成真&#xff0c;看看它的样子。 我正在工作的公司的标志产品是Fle…

【渝粤教育】电大中专测量学 (2)作业 题库

1.测量学是研究地球的形状和大小以及确定地面点&#xff08;&#xff09;位置的科学。 A.平面 B.空间 C.曲面 D.高程 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2.测量学中的水准面是一个&#xff08;&#xff09;。 A.斜平面 B.水平面 C.竖直面 D.曲面 正确 正…

【渝粤教育】电大中专电商运营实操 (1)作业 题库

1.电子商务的特点包括&#xff1a;交易环节少&#xff0c;营销成本低&#xff1b;全球性&#xff1b;简单的电子化支付手段&#xff1b;客户信息易于管理&#xff1b;符合全球经济发展要求&#xff1b;社会性&#xff1b;信息化。 &#xff08; &#xff09; A.错误 B.正确 错误…