作者:杨宇 文章来源:软件二部 点击数: 更新时间:2017-08-21 15:29:58
工作之后,有幸接触到了php、java和Android。前两者都是网页系统,后者是安卓应用,发现它们在代码分层都有相同的特点,以下是我对代码分层的理解。
PHP:
用得最多的便是thinkphp框架,文件架构通常三个:
Controller 存放控制器文件,负责中心调控,调用model与view;
View 存放视图文件,前端代码存储区域;
Model 存放数据文件,负责与数据库打交道;
JAVA:
Java接触的项目文件架构通常是:
Web 存放控制器文件,实现逻辑控制,负责中心调控,调用service和view层;
View 存放视图文件,前端代码存储区域;
Service 实现业务逻辑,负责调用Dao层;
Dao 负责与数据库打交道;
Entity 负责创建数据类型;
Android:
安卓接触到的项目架构是:
Activity 负责中心调控,调用presenter和view;
Model 负责与数据库打交道,内含entity和api等;
Presenter 类似java的service层;
View 存放视图文件;
实际上还有许多的文件夹,比如dialog、adapter等辅助用的,个人认为,以上四类是主要的。
在我的理解中,文件架构的区分,仅仅是为了让程序员能够分工,同时开展工作,不然前端必须等后端完成接口之类的,效率实在太低。而所有的分类,其实都是有一个中间控制层,在不同的语言中,文件夹名可能不同,但都是负责中心调控,从数据库读数据搬运到前端,起到一个搬运工的工作,而前端则是负责展示。区别是搬运数据的过程,是否分得更多。
Php中没有对数据的分类,使用数据并不需要创建和释放,自然就少了像java的entity层。这让我想起程序员内功——《重构》,分层无非是为了增加代码的可读性,在适当牺牲效率的前提下进行。当语言越学越多,当项目接触得越来越多,慢慢地发现,他们的共同性也越来越多,也许这是设计师,人类思维共同性造成的,也许是大自然的本质特征,就像细胞放到最大和宇宙缩到最小,才会发现两者惊人地相似。