书上都说要基于接口进行编程,这点我非常同意。但在实践过程中却遇到了一些问题,希望大伙可以提供专业意见。问题如图所示:IDBOperation是对数据库操作的接口,该接口供多个业务模块使用,而该接口的实现会有多种方案,并根据不同情况进行替换使用。如图所示,我希望将业务类单独放在一些类库上,而IDBOperation不同的实现方案,也分别放在不同的类库上(因为每种实现方式都需要引用不同的第三方类库,我不希望放在一起)。那么这个IDBOperation接口,应该在定义在哪一个类库上??第一时间想到亲建一个公共的类库,并且该类库专用于定义接口(可能里面定义了几百个接口)。但那样就变成“方案1”和“方案2”两个类库,都依赖于这一个公共的类库了。而实际上,这两个方案类库只需要里面的IDBOperation接口就可以了,却最终变成依赖于一个类库。不知道大家有什么好的建议?

解决方案 »

  1.   

    还是要一个公共的类库的,不仅是接口,还会有很多公共的数据定义要写的,
    例如产品的版本信息,
    前后台公用的一些方法等。
    我一般命名为base.dll
    另外两个是client.dll, server.dll最后是base.dll最多代码。
      

  2.   

    IDBOperation这个接口应该属于DAL层的。
      

  3.   

    to rtdb:谢谢回复,你的说法突然对我有一些启示。
      

  4.   

    to caozhy:不知道版主目前的做法是怎么样的?我也是希望可以最少依赖,并希望这个数据访问层以后可以重用。