当前位置: 首页 > 面试题库 >

程序设计-按功能打包还是按层打包,还是按两者打包?

孟浩慨
2023-03-14
问题内容

我正处于Web应用程序的设计阶段,该应用程序允许用户创建工作请求,而工作人员则花时间应对这些请求。该应用程序还将具有报告功能,供主管使用以获取每日总计,报告,并说明所花费的时间“成本分配”。

我过去处理过的应用程序是使用逐层方法设计的。我认为按功能设计使用软件包会更有效,我对此设计有疑问。

我目前对功能包的想法:

  1. 请求-对请求进行CRUD,然后分配,添加发票编号等。
  2. 工作时间-针对用户的CRUD每日时间,以应对要求,假期,培训或会议
  3. 成本分配-创建报告,会计需要的会计事项…

前端将是Tomcat服务器和JSP。并且,后端将是一个使用EclipseLink进行持久化的Oracle数据库

我的问题:

在我对按功能打包的理解中,实体和DAO将进入与它们关联的程序包。在几个包中分布持久层。将程序包留给其他程序包中的调用实体。在所有重叠的情况下,这真的起作用吗?包之间不会有隔离。使用按功能打包的优缺点是什么?附加的持久层会是一个好的设计吗?还是我对这完全错误的理解?


问题答案:

我建议从业务实体开始打包东西。在这里,您可以根据层划分事物。

在所有重叠的情况下,这真的起作用吗?

我练习了很长时间。我认为这种方法没有任何重大问题。您必须找出要解耦的内容以及应解耦的数量。例如,使用提供的API
orderscustomer包中调用的持久方法orders对我来说很好。

使用按功能打包的优缺点是什么?

与严格的面向层包装相比,我发现它更简单,简单,易懂且易于使用。当您想将事物拆分并分发到不同的地方时,它将很有用。

附加的持久层会是一个好的设计吗?

看看这个SO线程,我发现JPA或类似的东西不鼓励使用DAO模式。

进一步阅读



 类似资料:
  • 问题内容: 最近,我遇到了有关javajava的博客文章http://java.dzone.com/articles/how-changing-java- package,其中 介绍了按功能打包Java代码。 我喜欢这个主意,但是对于这种方法我没什么疑问。我问了我一个问题,但没有得到满意的答复。我希望StackOverflow上的人可以澄清我的问题。 我喜欢按功能打包的想法,它极大地减少了在编码时

  • 问题内容: 我喜欢按功能打包的想法,它极大地减少了在编码时跨包移动的时间,并且所有相关的东西都放在一个地方(包)。但是,不同包中的服务之间的交互又如何呢? 假设我们正在构建一个博客应用程序,并且将所有与用户相关的操作(控制器/服务/存储库)放入com.mycompany.myblog.users程序包中。以及所有与博客帖子相关的操作(控制器/服务/存储库)com.mycompany.myblog.

  • 问题内容: 我正在寻找一些关于JavaScript何时按值传递值,何时按引用传递,何时修改传递的项目影响函数外部值以及何时不传递值的良好综合阅读材料。我还对何时通过引用与按值分配给另一个变量以及是否遵循除作为函数参数传递以外的任何其他规则进行分配感兴趣。 我已经进行了很多搜索,找到了很多具体的示例(其中很多都在SO上),可以从这些示例中整理出一些真实的规则,但是我还没有找到一个写得很好的文档来描述

  • 通过vite中rollup打包,如何对lodash做按需打包? 这两种写法在build时 第一种dist体积比第二种要大。都说是第一种写法是将整个lodash打包进了dist。我这里有一个疑问,rollup在build时不是会对代码做按需打包吗? rollup的树摇不会起作用吗? 假设整个项目只使用了一个throttle函数,也会将整个lodash打包到dist吗? 虽然lodash是 cjs规范

  • 我正在使用selenium Java搜索不同的网站,我知道要查找特定的WebElement,有不同的方法,比如使用Xpath、使用Class或使用id。假设某网站具有如下所示的html结构 现在,如果我想从类名为“score”和“score_title”的div中提取文本,即1%的强度、43:1的情感、75%的激情和12%的到达,下面哪个选项最好。

  • 问题内容: 我有一个HashMap: 然后我这样做: 第一次打印1000,第二次打印1000,该值不变。为什么Java按值而不是按引用返回Integer? 问题答案: 该方法返回对存储整数的引用的 副本 。 给存储该副本的变量分配一个新值,指向该值将 不会 更改映射中的引用。 如果可以的话,它会工作,但是由于是一个不可变的类,因此这不是一个选择。 如果要使更改在地图中生效,则必须将余额包装在(可变