三层很灵活——你怎么学?

 

三层的学习已经很长一段时间了,从看视频到敲例子,到开始做机房收费系统中自己使用三层,其实这一路一直都没有认认真真的思考过“为什么使用三层?”

三层难吗?不难,不就是UI层,BLL 层,DAL 层。为什么会有这三层的出现?两层不行吗?

三层怎么划分?是逻辑都放到BLL层?

 

首先,为什么使用三层?

答:运用面向对象编程的思想“高内聚,低耦合”。很抽象。

还记得一开始学面向对象时,是把功能相同的代码,进行打包,整合到一个类中。这样做降低了耦合,增强了内聚,分层无非也是这个目的。运用三层架构模式,就是为了将这种影响降低。那么现在也可以借鉴一下分类的思想来思考三层。在建立好的类中,我们按照“界面交互”“逻辑判断”,“操作数据”这三个方向来进行打包,就是我们要的三层。

分层以后,每个层都在逻辑上都是独立的存在,在具体实现上,遵行的是上层依赖下层。具体层内是怎么实现的,是层内部的事情,所以在进行调试,替换三层中的每一层的内部结构时,只要接口保持不变,其他层不会受到影响。

 

三层不是死的,两层行吗?

开始我也很纳闷,后来发现第三层是用来访问数据库的。也就是说,我们的软件如果用不着数据库的话,第三层就不存在了。只有界面层跟逻辑判断层了。

如果软件很简单的话,那也就用不着分层了,逻辑判断在和界面合二为一了。

综上所述,三层是用来简化做大系统软件的复杂度,增加灵活性的一种设计模式。

 

是逻辑都放到B层吗?

开始很执拗于这个问题,把所有的逻辑都放到B层来实现。后来师傅点醒了我,一些简单的,不涉及到数据访问的逻辑就不必大费周折的放到B层了。例如:一句判输入长度或者输入是否是数字的的逻辑要放到B层,再通过方法调用来实现,这不是反而增加了代码量,而且把系统搞复杂了。

在来理解一些B层,B层是业务逻辑层。主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。(百科上说)B层主要是判断业务的逻辑的,所以在U层的一些输入逻辑就不必放到B层中。

变是永远不变的。如果说U层的输入逻辑判断比较复杂,我们也可以在B层开辟一条道路来给U层判断逻辑。

 

灵活学习三层。当然,三层中我们还可以加一些设计模式,在层跟层之间加衔接的接口,主体不变,同样还是三层的结构。

 

 

 

 

你可能感兴趣的:(三层)