监察部门网站建设方案,网站设计作业,网站制作网页,门户型网站有哪些structure101稳定应用程序的一个关键是结构良好的代码库。 我们知道我们应该建立尽可能多的黑匣子#xff0c;因为一旦完成一个黑匣子#xff0c;我们就不必再考虑其内部了。 您只需要使用您或其他团队成员通过明确定义的界面编写的代码即可。 这使您可以专注于要添加的下一个… structure101 稳定应用程序的一个关键是结构良好的代码库。 我们知道我们应该建立尽可能多的黑匣子因为一旦完成一个黑匣子我们就不必再考虑其内部了。 您只需要使用您或其他团队成员通过明确定义的界面编写的代码即可。 这使您可以专注于要添加的下一个功能。 当我们想到黑匣子时我们通常会想到类或整个jar包。 当然课程应该是黑匣子对此不做任何讨论。 jar包也是如此。 但是在类和jar包之间有另一层结构通常不能直接将其视为黑盒包。 一揽子计划通常是二等公民对其相互关系的分析不够深入。 但是有一个很好的工具可以进行这种分析 Structure101 。 通常它可以通过组织良好的图来帮助您监视和验证项目的依赖关系结构和复杂性。 因此让我们从一个示例项目开始。 为此我采取了自己的项目之一 japicmp是一种工具用于根据更改的方法和类来计算两个jar存档的API之间的差异。 structure101有一个很棒的组合视图它向您显示了项目包之间的依赖关系。 当前japicmp的外观如下 显然我们可以看到例如cli软件包它负责命令行解析它使用异常以及config软件包并且由main方法所在的主软件包本身使用。 使用cli软件包一切似乎都可以。 但是三个软件包cmputil和model呢 类和方法即业务逻辑之间的差异计算位于程序包cmp中。 因此它应该使用模型以及util包。 但是这两个软件包不应具有任何向后依赖性。 此问题也显示在矩阵视图中 当我们仔细查看这三个程序包之间的纠缠时我们发现util程序包中使用了cmp程序包中的类AccessModifier 除此之外该类还用于模型中。 这清楚地表明该类应该像在cmp包中那样留在模型包中。 这似乎是有道理的因为类或方法的访问修饰符是jar存档模型的一部分并且不属于业务逻辑。 如果将此类移至模型包则会得到以下结果 看起来好多了。 包装结构内没有任何缠结。 精美的布局还清楚地表明整个应用程序都取决于模型因为程序包位于图的底部。 从主程序包中调用驻留在cmp中的业务逻辑并按需使用utilconfig和model。 对于cli和xml输出的实现所在的输出包情况也是如此。 计算后此软件包将使用配置以及模型。 结论 软件包不应是二等公民而是可以帮助您构建应用程序的结构以便轻松查看代码和单独的功能。 诸如structure101之类的工具可帮助您分析软件包之间的依赖关系因此使软件包成为一侧的jar和另一侧的类之间的重要层次。 参考在Martins Developer World博客上我们的JCG合作伙伴 Martin Mois 使用structure101分析了软件包的依赖关系 。 翻译自: https://www.javacodegeeks.com/2013/11/analyze-package-dependencies-with-structure101.htmlstructure101