应用层和业务逻辑层有什么区别?我有点理解业务层提供业务特定的服务,应用层则将业务服务捆绑在一起并向最终用户提供服务(Web服务、UI等)。我的理解正确吗?
应用层和业务逻辑层有什么区别?我有点理解业务层提供业务特定的服务,应用层则将业务服务捆绑在一起并向最终用户提供服务(Web服务、UI等)。我的理解正确吗?
听起来差不多正确。
业务层以一种边界技术中立的方式实现领域模型。换句话说,它不依赖于任何特定的UI或服务接口相关技术,例如Web库或窗口API。您应该能够从任何类型的应用程序 - Web、富客户端、Web服务等消费业务层。
应用层填补了业务层和边界技术之间的差距。
总结:
应用层包含特定于该应用程序的元素。这将包含UI、UI的后端处理以及应用程序与业务逻辑层之间的任何绑定。在理想情况下,该层不应包含任何业务领域的逻辑。
业务逻辑层(BLL)包含特定于业务领域的逻辑。此外,如果您要创建单独的BLL,则此层应包含可以由其他应用程序以及此应用程序使用的逻辑。例如,一组公开定义良好API的Web服务。这样可以将BLL与应用程序解耦,并允许您在未来构建其他应用程序。
据我理解,业务层负责处理与客户端协议相关的业务决策逻辑。
应用层是与业务决策无关的原始流程。
在经典的分层中,业务层包含以下内容:
-业务规则 -安全性 -用户活动日志 -事务管理...
功能需求 + 非功能需求 = 业务代码
在领域驱动设计中,功能需求(如业务规则和业务逻辑)留在领域层中,而非功能需求(如安全性和用户活动日志)留在应用层中。
我认为它是基础设施。根据应用程序,它可以包含配置、报告、UI外壳等方面的管道。