小弟我看了三层框架以后,做练习中有一个困惑。
在DAL层实现的时候,为什么一定要用接口去实现,要多写一个IDAL层。问了很多人,他们都只会照本宣科的说接口那些所谓的特性,所谓的方便。但是我仔细思考之后,觉得那个IDAL层有点滥竽充数的嫌疑。即使项目再大,数据访问方法也就增删改查而已。当我问他们到针对那个IDAL增加功能的问题上后,后扯到了什么组合和聚合。弄的我好乱啊现在,我一直认为组合聚合应当根据现实情况来抽象,如果单纯为了所谓的“强者就该用这样做”的话,那岂不是有些SB了,不是有点忽悠人了么?我就在纠结这个IDAL层到底有什么用的问题上,请各位高人讲讲,大家发自内心的看法,你会为了什么而去用这个有点废柴的接口呢?我新人,没分可给,希望大家帮帮忙。

解决方案 »

  1.   

    你大概只知道有SQL Server吧...如果等你写完了用户告诉你我们不用SQL Server要用Oracle你就会发现...接口不是废柴,你是...当然你说你可以把Oracle的DAL也先写进去,另一个用户说我们既不用SQL Server也不用Oracle要用DB2...你认为用户很刁钻?对不起,用户就是很刁钻,用户不会像你们学校的老师那样好商量...
      

  2.   

    建议看一下asp.net2.0中自带的抽象工厂模式即提供程序工厂模型:DbProviderFactory。笼统的说,就是为了泛型编程的需要,
      

  3.   

     谢谢vrhero
     当时我在想这个问题:“为什么不能通过DAL层直接识别是哪种数据库呢?
    BLL用的时候也不需要知道是哪个库啊 用的时候DAL自己分析该用谁 不也可以嘛?”
    导致我饶了一个圈,让DAL自己分析的最好方法还是使用接口。
    不过我也没你想的那么弱智哦呵呵