分层设计思路

写代码过程中,如果代码量太大,为了让结构更清晰,我们就会把代码拆分成几个方法,然后又分门别类地拆分成几个文件。不知不觉、自然而然就有了分层的思想,这就是分层设计的雏形。

拆分方法、类文件,不只是为了复用,更多是为了让结构更清晰。

面向过程、面向对象都可以实现分层设计。这里只讨论面向对象的分层设计。

基于类和对象的分层设计,肯定比类的设计更复杂。原来对类的设计要求就比较高的,那对分层设计的要求自然就更高了。

刚开始没经验,就先写简单的功能,先做简单的拆分就行,然后再根据经验进行设计优化。

 

分层设计可基于开发分工需求,比如分出【模型层】专门处理具体业务;也可基于实际功能需求,比如分出数据服务层,满足多个客户端数据相同,显示界面不同的需求。

 

当某一层调用另一层的时,控制权就转到了另一层手里;调用结束之后,控制权又转回来了。这是很明显的废话,但可能很多人没意识到。

【框架设计思路】一节中。【控制器层】是业务处理入口,也就是最外一层,掌握整体控制权,整体流程如下:

1)【控制器层】每次调用【数据服务层】,控制权转到了【数据服务层】,进行获取服务数据

2)【数据服务层】每次调用【模型层】,控制权转到了【模型层】,进行处理具体业务

3)【数据服务层】每次调用【模型层】结束之后 ,控制权又转回【数据服务层】

4)【控制器层】每次调用【数据服务层】结束之后 ,控制权又转回【控制器层】

5)【控制器层】每次调用【视图层】,控制权转到了【视图层】,进行渲染、生成html

6)【控制器层】每次调用【视图层】结束之后 ,控制权转回【控制器层】,保存生成的html

7)【控制器层】再次调用【视图层】,控制权再次转到了【视图层】,进行渲染、生成html

8)【控制器层】多次调用【视图层】结束之后 ,控制权又转回【控制器层】,保存生成的html,输出html,进行其他处理等