Web applications 体系结构:在何处放置不依赖于任何其他服务或存储库组件的服务类
考虑一个具有存储库层(持久性)、服务层(应用程序)和web(UI)层的web应用程序 考虑一个组件(即ExternalProgramExecutor),它不是UI组件,也不依赖于服务或存储库层中的任何组件 问题是:Web applications 体系结构:在何处放置不依赖于任何其他服务或存储库组件的服务类,web-applications,architecture,3-tier,Web Applications,Architecture,3 Tier,考虑一个具有存储库层(持久性)、服务层(应用程序)和web(UI)层的web应用程序 考虑一个组件(即ExternalProgramExecutor),它不是UI组件,也不依赖于服务或存储库层中的任何组件 问题是: 此组件是否属于服务层 该组件是否属于持久层 是否应将其与这些层分开处理?如果是,架构的这一部分的名称是什么 我希望它是“基础架构层”的一部分。请看一下: 谢谢。问问自己以下问题: 它是在坚持什么吗 它提供服务吗 它所做的这些事情是否与您的应用程序特别相关 第一个问题的答案应
- 此组件是否属于服务层
- 该组件是否属于持久层
- 是否应将其与这些层分开处理?如果是,架构的这一部分的名称是什么
谢谢。问问自己以下问题:
- 它是在坚持什么吗
- 它提供服务吗
- 它所做的这些事情是否与您的应用程序特别相关
毕竟,Web架构只是一种组织机制。如果您试图在一个真正的Web架构参考中找到答案™, 你是。考虑到你问题的局限性,我想问你独立组件的用途是什么?它主要是围绕某些数据的外观(这将使其成为持久层的一部分),还是应用程序(应用程序层)的域、业务逻辑或工作流的一部分?类似于外部任务执行器,我倾向于认为它是应用程序层的一部分。从概念上讲,“ExternalProgramExecutor”看起来像一个服务,因此它属于服务层 要了解服务层的详细信息,有两种可能:
就我个人而言,我会在问题列表中添加另一个问题@Robert asked:
对我来说,我通常在我的体系结构中添加一个新的实用程序/框架组件,在这里我放置了完全独立的组件,可以在以后的其他应用程序中重用。我倾向于将服务视为域模型上的接口,因为这听起来好像不存在这种关系,从这个意义上讲,这听起来不像是一种服务 持久化层负责协调与数据存储的通信,但听起来这个组件在这方面也没有太多工作要做 那么它属于哪一层呢?它真的需要属于一个吗?通过问这些问题,听起来你已经在花时间正确地组织你的对象了。如果您有一个单独的无关组件,您可以: A) 将其放入使用最多的层中 B) 将它放入自己的程序集中,不要再担心给它贴标签:)多层(软件)体系结构使用不同的层来分配应用程序的责任,因此我们有:
- 用户界面(表示层):负责表示 向用户提供信息并解释用户命令
- 应用程序层:该层协调应用程序活动。没有 包含任何业务逻辑。它不保持业务状态 对象,但它可以保存应用程序任务的进度状态
- 域层:此层包含有关业务的信息 域名。业务对象的状态保存在此处。持续性 业务对象及其状态可能被委托给 基础设施层李>
- 基础结构层:此层用作 支持所有其他层的库。它提供通信 在层之间,实现业务对象的持久性,包含 支持用户界面层的库等
嗯,
ExternalProgramExecutor
本身就是一项服务,因为您的应用程序将其用作外部组件
显然