有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java层和组件之间的区别是什么?

我的主要开发框架是JavaSpring框架。我必须编写服务层、控制器层、dao层、存储库层等等。有成千上万吨的分层。我认为基于组件的开发方法将比分层更有效率。Spring将每个javabean称为一个组件。但我认为组件和层之间应该有很大的区别。通常,组件处于活动状态时,层为被动层。组件触发事件、调用生命周期回调方法并主动处理任务。另一方面,层只提供抽象。那么,层和组件之间的根本区别是什么


共 (2) 个答案

  1. # 1 楼答案

    层和组件的概念是不同的,它们不会相互替换。层是一种抽象。您可以从数据库交互或HTTP端点处理程序中抽象业务逻辑。层由组件组成。一个层中可能有多个组件

    让我们继续具体的例子。您的系统中有UserGroup个实体。您将同时拥有名为UserControllerGroupController的端点处理程序。这些是组件,它们一起构成端点处理程序层。对于业务逻辑,您将有UserServiceGroupService。这些是组件,它们构成服务层。具有UserRepositoryGroupRepository组件的数据库层也是如此

    如果您打算使用全堆栈组件,那么在这种情况下,所有层都将压缩到处理程序中。这意味着UserController实现了从获取请求、应用业务规则到访问数据库的所有功能。这种结构很难测试,也很难维护。经过一段时间后,代码变得非常混乱,难以处理。没有单元测试,只有测试一切的集成测试。没有任何选项可以更改数据库访问方法,有些人可能希望使用内存中存储库实现进行测试,但这种技术不允许这样做。总而言之,分层架构一开始可能看起来很复杂,但从长远来看,它很方便

    附言:如果你说的组件不是这个意思,请留下评论,然后我们可以继续讨论

  2. # 2 楼答案

    层和组件化是两种设计方法,遵循的目的是架构关注点

    1. 如果架构/设计强制要求实现可重用性, 可扩展性、模块化和;这种特性,, 图层会帮你的

    2. 如果您的应用程序不太复杂,没有 自定义和可扩展性,您可以选择对所有内容进行编码 在一些组件中

    归根结底,这是一个战略性的建筑设计与开发项目;设计需要,这通常会使您与层和;组成部分