有时候我总觉得一个类中的方法也是一个接口,虽然我并没有在这个类中把它定义为一个接口,比如下面的类:
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语句就行了,从某种意义上来讲,方法不也是一种接口吗?
不知道我这样理解对不对,请大家指导!

解决方案 »

  1.   

    引入interface的作用是为了抽象,面向抽象编程原则,使你的上层代码和下层的具体实现剥离开来,这样可以最大限度的共用公共逻辑,灵活的在你的系统中插入新的功能,这才是接口的意义,建议阅读《java与模式》。
      

  2.   

    不对。
    接口是抽象的,对象是具体的。
    接口只能被派生或继承,不能直接使用。
    你的那个用法,是类的用法。
    你的理解,只是从字面上理解的生活中的“接口”或者说字典上的“接口”,而不是面向对象中对于“接口”的定义和要求。
    像你这样的思维,最好别看中文译著,直接用interface来把握理解可能会更好一点
      

  3.   

    qltouming(缘木渔人)说的有道理,看来我是在字面上把“接口”这个概念给混淆了,有点“顾名思意”了