首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于一个抽象类或接口方面的有关问题

2012-09-10 
关于一个抽象类或接口方面的问题我想实现这样一个功能,在BLL层中C# codenamespace BLL{ class A01{public

关于一个抽象类或接口方面的问题
我想实现这样一个功能,在BLL层中

C# code
namespace BLL{ class A01{    public List<Model.A01> GetList(int id){     //...   }    public Model.A01 GetModel(int id){     //...   } } class A02{    public List<Model.A02> GetList(int id){     //...   }    public Model.A02 GetModel(int id){     //...   }  } class A03{    public List<Model.A03> GetList(int id){     //...   }    public Model.A03 GetModel(int id){     //...    }  }}


我想用接口或者抽象类来做继承,但是由于返回参数类型都不同,请问这个怎么解决呢。



[解决办法]
泛型接口的声明形式如下:

interface 【接口名】<T>

{

【接口体】

}

http://blog.csdn.net/donetren/article/details/6494134
[解决办法]
C# code
namespace BLL{ class A<T>{    public List<T> GetList(int id){     //...   }    public T GetModel(int id){     //...   } } class A01 : A<A01>{ } class A02 : A<A02>{ } class A03 : A<A03>{ }}
[解决办法]
参考这个:http://code.google.com/p/dapper-dot-net/
下载它的测试项目,即使运行不起来,你看他写的测试代码就该知道如何使用了。
优美的语法,高效的执行效率,强大的通用性,基于它再进行优化将更加强大。
这里有我的第一版修改介绍和下载:http://blog.csdn.net/qldsrx/article/details/7452346
第二版也完成了,只是没发布,看请款再说,CSDN上面似乎没人关心这方面的东西,让我觉得发布与否变得无意义。
[解决办法]
泛型咯。
[解决办法]
BLL层只是实现抽象分离的一种方式。
把与具体数据访问无关的抽象业务逻辑分离开来,还是很有必要的。
这样,无论数据层还是BLL层都可以独立于对方而分别演化。这才是分层的目的所在。
两者都可以不需要知道对方的存在。而只是使用接口进行通信。

以上LZ的例子,除了使用泛型以外,还可以使用接口。Model中和BLL中都可以用接口:
C# code
public interface IA{    public List<IA0123> GetList(int id){     //...    }    public Model.IA0123 GetModel(int id){ } public class A01: IA{....} 

热点排行