购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 说说OCP开放封闭原则

我们都知道,数据要存放在数据库中,程序要操作数据,就要直接或间接地操作数据库,要操作数据库,就不可避免地要写大量的SQL语句。这些SQL语句可以满足很多初级程序员的虚荣心,看着这些简单或复杂的SQL语句被程序运行以后就可以得到自己想要的数据,是不是很有成就感?但是,问题也就随之而来了。

当写一个SQL语句的时候,就注定了这条SQL语句只能满足一种业务场景或一种类型业务场景。当业务场景发生变化的时候,SQL语句也有可能发生变化。SQL语句的变化又可能引起DAL层的变化,进而影响到BLL层。这样一系列的连锁反应,是我们不想看到的。

当不得不修改某些代码的时候,我们更希望这些修改的影响范围最小,尽量不要涉及其他的层(Layer)。设计模式(Design Pattern)中的开放封闭原则(OCP Open Closed Principle)的目的就是要解决上面提到的问题。

开放封闭原则简称开闭原则,是设计模式中非常基础的一个原则,它的表述是:在软件开发过程中,代码应该对扩展是开放的,对修改是封闭的。也就是说如果你要新增功能,欢迎;如果要修改现有的功能,对不起,此路不通。

那问题来了:如果业务有更改,就是要修改代码,怎么办?

看来修改SQL是势在必行了。既然绕不过这个问题,那么就只能让修改SQL的影响范围变为最小。最起码,DAL的修改不要影响到BLL层。但是BLL层调用DAL层的时候,经常会这样写:

dalClass dal=new dalClass();         //实例化一个dal 对象

这样的代码导致DAL的修改必然会影响到BLL层,我们通常把这种关联关系叫做“耦合”。那么怎么能让DAL不影响到BLL层呢?如何让DAL层和BLL层的耦合关系不要那么密切呢?甚至让BLL层根本不知道DAL层的存在,就达到了让BLL层和DAL层没有耦合的目的,也叫“解耦”。

PS:计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。

这句话是计算机界中的格言,那我们就试着加一个“中间层”来解决上面提到的问题。 tz4WndUsa8/ocKwSsRhrEkaLgb7B/IqW7LidqzyO7j017CW97V3yscXsekkTc1VH

点击中间区域
呼出菜单
上一章
目录
下一章
×