关于接口问题的疑惑
有时候我总觉得一个类中的方法也是一个接口,虽然我并没有在这个类中把它定义为一个接口,比如下面的类:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Data.Odbc;
using System.IO;
namespace Class
{
public class DataAccess
{
public DataAccess()
{
}
public static string ConnectionStrBySql
{
get
{
return "server=127.0.0.1;user id=sa;password=clsoft;database=myweb";
}
}
public static DataTable GetSqlData(string sql)
{
DataSet ds = new DataSet();
SqlDataAdapter dsCommand = new SqlDataAdapter();
......
conn.Open();
......
return ds.Tables[0];
}
......
}
}
在这个类中,我并没有定义接口,但是我可以在任务项目中把它封成一个DLL使用它,我也不用关心其中的结构,我只需要这样Class.DataAccess.ConnectionStrBySql调用它来设置连接字符串或这样Class.DataAccess.GetSqlData (str_sql)执行SQL语句就行了,从某种意义上来讲,方法不也是一种接口吗?
不知道我这样理解对不对,请大家指导!
问题点数:30、回复次数:6Top
1 楼copine()回复于 2006-11-01 11:47:07 得分 5
引入interface的作用是为了抽象,面向抽象编程原则,使你的上层代码和下层的具体实现剥离开来,这样可以最大限度的共用公共逻辑,灵活的在你的系统中插入新的功能,这才是接口的意义,建议阅读《java与模式》。Top
2 楼byhum(sigh....唯一的缺点就是干净)回复于 2006-11-01 11:52:46 得分 0
ding......Top
3 楼Macosx(结贴)回复于 2006-11-01 12:29:53 得分 5
程序接口和编程语言中的接口是两个概念Top
4 楼qltouming(缘木渔人-临渊羡鱼,不若退而结网)回复于 2006-11-01 12:46:19 得分 15
不对。
接口是抽象的,对象是具体的。
接口只能被派生或继承,不能直接使用。
你的那个用法,是类的用法。
你的理解,只是从字面上理解的生活中的“接口”或者说字典上的“接口”,而不是面向对象中对于“接口”的定义和要求。
像你这样的思维,最好别看中文译著,直接用interface来把握理解可能会更好一点
Top
5 楼foyuan(暴走零零漆)回复于 2006-11-01 13:17:25 得分 5
严重错误
接口是没有方法的具体实现
Top
6 楼chuihanwen()回复于 2006-11-01 13:27:14 得分 0
qltouming(缘木渔人)说的有道理,看来我是在字面上把“接口”这个概念给混淆了,有点“顾名思意”了Top




