前进中的蜗牛

番茄大叔

水滴穿石,非一日之功;没有量变,何来质变。

服务层设计

服务层由来

业务层介绍,一般我们会在业务层添加一些服务类,这些服务类采用外观模式将服务提供给外界调用,从而隐藏了内部的复杂性,这样将处理逻辑的操作委托给了业务类。
既然业务层中已经存在服务类了,为什么还要添加服务层呢? 新的需求:

  • 显示层不业务层层
  • 添加缓存操作
  • 安全认证
  • 异常处理日志记录
    一般在项目初期或业务不复杂的情况下,可以先不添加服务层。随着项目的发展和业务的变化,业务称变的复杂,应抽查一层服务层,是业务层只处理业务逻辑。

服务层的功能

提供更简洁的API

通过外观模式,将业务层的服务类或非服务类封装,提供供客户端简单调用的API

数据传输对象(DTO)

  1. 将应用层的数据封装DTO对象,传输给显示层
  2. 介绍显示层传来的DTO对象,映射为业务层的Model,调用业务层

远程服务开发

为了各系统更好的交互,有时需要开发一服务程序,通其他系统调用。即面向服务的架构(SOA).
SOA的原则

  • 边界清晰: 服务部署后,可供其他服务轻松访问
  • 服务自制
  • 兼容性基于策咯
  • 共享模式和契约 模式即数据,基于即行为。
    微软提供WCF方式实现服务框架开发,在服务架构中:
    客户端与服务端交换的数据即共享模式
    为服务层提供接口,共享契约。客户端获得服务操作相同

客户端通过代理类访问服务

为了方便客户端调取服务,可添加一代理。创建方法:

  • 创建共享模式(传输数据)
  • 实现服务服务端的共享契约(接口) 代理类,通过WCF的Channel同服务端交换
posted @   LoveTomato  阅读(758)  评论(0编辑  收藏  举报
编辑推荐:
· 从 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)
点击右上角即可分享
微信分享提示