服务层设计
服务层由来
业务层介绍,一般我们会在业务层添加一些服务类,这些服务类采用外观模式将服务提供给外界调用,从而隐藏了内部的复杂性,这样将处理逻辑的操作委托给了业务类。
既然业务层中已经存在服务类了,为什么还要添加服务层呢? 新的需求:
- 显示层不业务层层
- 添加缓存操作
- 安全认证
- 异常处理日志记录
一般在项目初期或业务不复杂的情况下,可以先不添加服务层。随着项目的发展和业务的变化,业务称变的复杂,应抽查一层服务层,是业务层只处理业务逻辑。
服务层的功能
提供更简洁的API
通过外观模式,将业务层的服务类或非服务类封装,提供供客户端简单调用的API
数据传输对象(DTO)
- 将应用层的数据封装DTO对象,传输给显示层
- 介绍显示层传来的DTO对象,映射为业务层的Model,调用业务层
远程服务开发
为了各系统更好的交互,有时需要开发一服务程序,通其他系统调用。即面向服务的架构(SOA).
SOA的原则
- 边界清晰: 服务部署后,可供其他服务轻松访问
- 服务自制
- 兼容性基于策咯
- 共享模式和契约 模式即数据,基于即行为。
微软提供WCF方式实现服务框架开发,在服务架构中:
客户端与服务端交换的数据即共享模式
为服务层提供接口,共享契约。客户端获得服务操作相同
客户端通过代理类访问服务
为了方便客户端调取服务,可添加一代理。创建方法:
- 创建共享模式(传输数据)
- 实现服务服务端的共享契约(接口) 代理类,通过WCF的
Channel
同服务端交换
标签:
框架设计
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)