【初学者必读】让你明白什么是接口

接口在类型无关的应用上起了很大的作用,因为它定义的是一个对象必须拥有的属性与方法,而不管那个对象是啥类(当然那个类要实现这个接口)

举个例子,有这么一个类的方法,它的参数是一个Connection对象,返回了一个DataReader对象。。当我们直接用类,就必须考虑类型问题了。。.net Framework1.1默认提供了SqlClient|Odbc|OleDb三种,如果数据库是SqlServer的,我们的方法可能是这样的(仅是举例。。不要讨论其中实现的合理性。。):

public SqlDataReader ExecuteReader(SqlConnection connection)
{
SqlCommand command = new SqlCommand("select * from tab", connection);
return command.ExecuteReader();
}

可是有一天,领导说SqlClient不好玩,要换成OleDb的。。那你事情就来了。。你得满地找SqlClient相关的应用。。把它改成OleDb的。。结果这个方法就成了

public OleDbDataReader ExecuteReader(OleDbConnection connection)
{
OleDbCommand command = new OleDbCommand("select * from tab", connection);
return command.ExecuteReader();
}

如果我们在刚开始设计的时候应用了接口,那会写成

public IDataReader ExecuteReader(IDbConnection connection)
{
IDbCommand command = connecton.CreateCommand();
command.CommandText = "select * from tab";
return command.ExecuteReader();
}

这个方法没有任何一个地方描述了它是使用哪种类型的连接。。而是抽像成一堆接口。。。当你换成OleDb的时候。。一行代码都不需要修改。。节省了大量的成本。

接口的应用还有许多。。研究研究就懂了  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值