java层和组件之间的区别是什么?
我的主要开发框架是JavaSpring框架。我必须编写服务层、控制器层、dao层、存储库层等等。有成千上万吨的分层。我认为基于组件的开发方法将比分层更有效率。Spring将每个javabean称为一个组件。但我认为组件和层之间应该有很大的区别。通常,组件处于活动状态时,层为被动层。组件触发事件、调用生命周期回调方法并主动处理任务。另一方面,层只提供抽象。那么,层和组件之间的根本区别是什么
你可以在下面搜索框中键入要查询的问题!
我的主要开发框架是JavaSpring框架。我必须编写服务层、控制器层、dao层、存储库层等等。有成千上万吨的分层。我认为基于组件的开发方法将比分层更有效率。Spring将每个javabean称为一个组件。但我认为组件和层之间应该有很大的区别。通常,组件处于活动状态时,层为被动层。组件触发事件、调用生命周期回调方法并主动处理任务。另一方面,层只提供抽象。那么,层和组件之间的根本区别是什么
# 1 楼答案
层和组件的概念是不同的,它们不会相互替换。层是一种抽象。您可以从数据库交互或HTTP端点处理程序中抽象业务逻辑。层由组件组成。一个层中可能有多个组件
让我们继续具体的例子。您的系统中有
User
和Group
个实体。您将同时拥有名为UserController
和GroupController
的端点处理程序。这些是组件,它们一起构成端点处理程序层。对于业务逻辑,您将有UserService
和GroupService
。这些是组件,它们构成服务层。具有UserRepository
和GroupRepository
组件的数据库层也是如此如果您打算使用全堆栈组件,那么在这种情况下,所有层都将压缩到处理程序中。这意味着
UserController
实现了从获取请求、应用业务规则到访问数据库的所有功能。这种结构很难测试,也很难维护。经过一段时间后,代码变得非常混乱,难以处理。没有单元测试,只有测试一切的集成测试。没有任何选项可以更改数据库访问方法,有些人可能希望使用内存中存储库实现进行测试,但这种技术不允许这样做。总而言之,分层架构一开始可能看起来很复杂,但从长远来看,它很方便附言:如果你说的组件不是这个意思,请留下评论,然后我们可以继续讨论
# 2 楼答案
层和组件化是两种设计方法,遵循的目的是架构关注点
如果架构/设计强制要求实现可重用性, 可扩展性、模块化和;这种特性,, 图层会帮你的
如果您的应用程序不太复杂,没有 自定义和可扩展性,您可以选择对所有内容进行编码 在一些组件中
归根结底,这是一个战略性的建筑设计与开发项目;设计需要,这通常会使您与层和;组成部分