陋室铭
永远也不要停下学习的脚步(大道至简至易)

posts - 2169,comments - 570,views - 413万
分层并不是说把你的代码拆开成n类,如果只是简单的分拆基本上没什么意义

分层实际上是为了对象设计。一般是先有对象在有代码。

我们为什么要对象,我们做对象的原因是我想在分析设计阶段,只关心系统的对象,和对象间的交互和约束,而不关心界面是如何表现的,数据是如何入库的。

实际上当你把对象建完后,系统就自然分层了。因为,对于完整的系统,系统自然是要往数据库里写东西的,而现在的对象里没有往数据库里读写的过程,你需要加入读写过程,这样DA层就出来了。系统还要有客户界面交互部分,而现在的对象也没有界面交互部分,ok,我们加入界面交互,行了表现层出来了

确切的说现在三层结构细分一般为7层结构

-- -DBUtility数据层基类
---DALFactory数据层工厂类
---IDAL接口层
---SQLDAL接口实现层
---Model实体类
---Logic业务逻辑层
---Web表示层

                     对象的表示                                       对象的存取
表示层(View)<-------------------对象,对象集(通信,约束)------------------->数据层
Web表示层                           Model实体类                                                                      DBUtility数据层基类
                                      Logic业务逻辑层                                                                      DALFactory数据层工厂类
                                                                                                                                                                     IDAL接口层
                                                                                                                             SQLDAL接口实现层

    对象设计类、接口的功能越单一越好,实体类除了自身的基本属性外,最好不要提供什么操作。像getuserById,setUserById,checkUser这些并不是用户类固有的,而且将来还会不断有其他操作加入。

设计的时候尽量和现实世界里越“像”越好,把问题分解为:谁(对象)对什么/通过什么然后干什么/得到什么等等,比如权限问题,可以描述为:系统对用户的操作(和操作对象/类型)进行判断。
posted on   宏宇  阅读(662)  评论(2编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
< 2007年11月 >
28 29 30 31 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示