分层实际上是为了对象设计。一般是先有对象在有代码。
我们为什么要对象,我们做对象的原因是我想在分析设计阶段,只关心系统的对象,和对象间的交互和约束,而不关心界面是如何表现的,数据是如何入库的。
实际上当你把对象建完后,系统就自然分层了。因为,对于完整的系统,系统自然是要往数据库里写东西的,而现在的对象里没有往数据库里读写的过程,你需要加入读写过程,这样DA层就出来了。系统还要有客户界面交互部分,而现在的对象也没有界面交互部分,ok,我们加入界面交互,行了表现层出来了
确切的说现在三层结构细分一般为7层结构
--
---DALFactory数据层工厂类
---IDAL接口层
---SQLDAL接口实现层
---Model实体类
---Logic业务逻辑层
---Web表示层
表示层(View)<-------------------对象,对象集(通信,约束)------------------->数据层
Web表示层 Model实体类 DBUtility数据层基类
Logic业务逻辑层 DALFactory数据层工厂类
IDAL接口层
SQLDAL接口实现层
对象设计类、接口的功能越单一越好,实体类除了自身的基本属性外,最好不要提供什么操作。像getuserById,setUserById,checkUser这些并不是用户类固有的,而且将来还会不断有其他操作加入。
设计的时候尽量和现实世界里越“像”越好,把问题分解为:谁(对象)对什么/通过什么然后干什么/得到什么等等,比如权限问题,可以描述为:系统对用户的操作(和操作对象/类型)进行判断。