分层并不是说把你的代码拆开成n类,如果只是简单的分拆基本上没什么意义
分层实际上是为了对象设计。一般是先有对象在有代码。
我们为什么要对象,我们做对象的原因是我想在分析设计阶段,只关心系统的对象,和对象间的交互和约束,而不关心界面是如何表现的,数据是如何入库的。
实际上当你把对象建完后,系统就自然分层了。因为,对于完整的系统,系统自然是要往数据库里写东西的,而现在的对象里没有往数据库里读写的过程,你需要加入读写过程,这样DA层就出来了。系统还要有客户界面交互部分,而现在的对象也没有界面交互部分,ok,我们加入界面交互,行了表现层出来了
确切的说现在三层结构细分一般为7层结构
表示层(View)<-------------------对象,对象集(通信,约束)------------------->数据层
Web表示层 Model实体类 DBUtility数据层基类
Logic业务逻辑层 DALFactory数据层工厂类
IDAL接口层
SQLDAL接口实现层
对象设计类、接口的功能越单一越好,实体类除了自身的基本属性外,最好不要提供什么操作。像getuserById,setUserById,checkUser这些并不是用户类固有的,而且将来还会不断有其他操作加入。
设计的时候尽量和现实世界里越“像”越好,把问题分解为:谁(对象)对什么/通过什么然后干什么/得到什么等等,比如权限问题,可以描述为:系统对用户的操作(和操作对象/类型)进行判断。
分层实际上是为了对象设计。一般是先有对象在有代码。
我们为什么要对象,我们做对象的原因是我想在分析设计阶段,只关心系统的对象,和对象间的交互和约束,而不关心界面是如何表现的,数据是如何入库的。
实际上当你把对象建完后,系统就自然分层了。因为,对于完整的系统,系统自然是要往数据库里写东西的,而现在的对象里没有往数据库里读写的过程,你需要加入读写过程,这样DA层就出来了。系统还要有客户界面交互部分,而现在的对象也没有界面交互部分,ok,我们加入界面交互,行了表现层出来了
确切的说现在三层结构细分一般为7层结构
--
---DALFactory数据层工厂类
---IDAL接口层
---SQLDAL接口实现层
---Model实体类
---Logic业务逻辑层
---Web表示层
表示层(View)<-------------------对象,对象集(通信,约束)------------------->数据层
Web表示层 Model实体类 DBUtility数据层基类
Logic业务逻辑层 DALFactory数据层工厂类
IDAL接口层
SQLDAL接口实现层
对象设计类、接口的功能越单一越好,实体类除了自身的基本属性外,最好不要提供什么操作。像getuserById,setUserById,checkUser这些并不是用户类固有的,而且将来还会不断有其他操作加入。
设计的时候尽量和现实世界里越“像”越好,把问题分解为:谁(对象)对什么/通过什么然后干什么/得到什么等等,比如权限问题,可以描述为:系统对用户的操作(和操作对象/类型)进行判断。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现