http://www.cnblogs.com/william-ren/archive/2007/12/12/992160.html   从此处转,修改后便于理解。

C# interface的一点使用总结

1 一个类可以实现一个以上的接口;

2 类必须实现接口中的“所有”属性和方法;

3 属性和方法定义所采用的格式必须与接口定义所采用的格式完全相同。方法所采用的参数数目及参数类型必须与接口中的完全相同。方法的名称也必须相同。

接口之间的继承:接口的继承仅仅说明了接口之间的继承关系,派生的接口继承了父接口的成员说明,没有继承父接口的实现。private和internal类型的接口不允许继承。如果派生接口中准备重写父接口的方法,实现方式同类的继承成员的覆盖。

如果一个类实现了某个接口,即使父接口没有在类的基类表中列出,这个类也隐式地继承了接口的所有父接口。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Phoenix.test.DoData
{
        public interface IDataOperate
        {
            string Insert();
        }
      //类封装,接口作为成员字段,实现接口统一访问
      //工厂模式
        public class DataOperate
        {
            private IDataOperate iDataOperate;
           
            public DataOperate(string dataBaseName)
            {
                switch (dataBaseName)
                {
                    case "sql":
                        iDataOperate = new DoData.DoSql();//实例化为接口类 DoData.IDataOperate
                        break;
                    case "access":
                        iDataOperate = new DoData.DoAccess();//实例化为接口类DoData.IDataOperate 
                        break;
                }

}

            public string Insert() { return iDataOperate.Insert(); }
        }
        
         public class DoAccess : IDataOperate
        {
            public string Insert()
            {
                //实现ACCESS插入的代码;
                return "access";
            }
        }

public class DoSql : IDataOperate
        {
            public string Insert()
            {
                //实现SQLServer插入的代码;
                return "sql";
            }
        }
     
    }

调用示例

using System;
using System.Collections;
using System.Collections.Generic;
using Phoenix.test.DoData;

namespace Phoenix.test
{
    class class2
    {
        public static void Main()
        {
            DataOperate dataOperate = new DataOperate("sql");    //实例化构造函数
            Console.WriteLine(dataOperate.Insert());
            Console.ReadKey();
        }
    }
}

当然这里处理你可以使用反射来创建相应的类.
在封装组件的时候,使用者在调用方法的时候,不需要知道究竟是用什么数据库对象,只需要调用接口来得到数据库处理方法就可以了。

转载于:https://www.cnblogs.com/fire-phoenix/archive/2010/03/29/1700105.html

C# interface 理解 数据库统一接口相关推荐

  1. API(Application Programming Interface,应用程序编程接口)

    API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码 ...

  2. 深入理解数据库核心技术

    " 数据库作为IT系统核心基石,为互联网科技的进步起着不可磨灭的功劳." 来自公众号:技术茶馆 01 - 概述 数据库是"按照数据结构来组织.存储和管理数据的仓库&quo ...

  3. 数据库的三级模式结构以及如何理解数据库的三级模式

    所谓模式是指用数据描述语言精确定义的数据模型.数据模式的三个层次:外部层.概念层和内部层,构成数据库系统的三级模式结构,如图所示.不管数据库管理系统的功能如何变化.操作系统的平台如何不同.数据模型如何 ...

  4. 数据库访问抽象层系列-1(介绍数据库编程接口及数据库访问抽象层概念)

    摘要 本人最近完成了一个封装数据库访问抽象层的项目.我们开发的数据库访问抽象层作为分布式集群基础平台的一个组件.可以支持不同数据库编程接口(OCI.mysql.ODBC.pgsql)等.本系列博客主要 ...

  5. Java每日一课:理解抽象类和接口的区别与联系

    抽象类与接口这两者有太多相似的地方,又有太多不同的地方.往往这二者可以让初学者摸不着头脑,无论是在实际编程的时候,还是在面试的时候,抽象类与接口都显得格外重要!希望看完这篇博客文章各位都能从容地明了二 ...

  6. Iterator:访问数据集合的统一接口

    导语 遍历器Iterator是ES6为访问数据集合提供的统一接口.任何内部部署了遍历器接口的数据集合,对于用户来说,都可以使用相同方式获取到相应的数据结构.如果使用的是最新版Chrome浏览器,那么你 ...

  7. 3、常用数据库访问接口简介

    不同的程序设计语言会有各自不同的数据库访问接口,程序语言通过这些接口,执行 SQL 语句,进行数据库管理.主要的数据库访问接口主要有 ODBC.JDBC.ADO.NET 和 PDO. ODBC ODB ...

  8. 腾讯地图api_数据库API接口的类型及应用场景

    Database API interface 数据库API接口 的类型及应用场景 -keynote speaker- 主讲嘉宾:黄镝 时间:2020年12月16日  晚上7:00 「昆虫小课堂」202 ...

  9. Windows数据库编程接口简介

    数据库是计算机中一种专门管理数据资源的系统,目前几乎所有软件都需要与数据库打交道(包括操作系统,比如Windows上的注册表其实也是一种数据库),有些软件更是以数据库为核心因此掌握数据库系统的使用方法 ...

最新文章

  1. @EnableScheduling和@Scheduled的使用(初级)
  2. No entry found for dependency in Cartfile.
  3. Token 防盗链详解
  4. python内置函数源码_python如何查看内置函数源码
  5. 团队在Github上协同开发项目流程
  6. ABAP 7.53 中的ABAP SQL(原Open SQL)新特性
  7. Mysql学习总结(12)——21分钟Mysql入门教程
  8. Java 中抽象类与接口
  9. javabean更新到mysql_javabean连mysql 数据库更新问题
  10. Storm概念学习系列之Task任务
  11. 使用oracle数据库和MySQL数据库时hibernate的映射文件.hbm.xml的不同
  12. PLSQL Developer报“动态执行表不可访问,本会话的自动统计被禁止”的解决方案...
  13. (jdbc和cmd)sqlite数据迁入mysql(导入导出)
  14. linux版wps无法输入中文的解决办法
  15. Unity模拟行星轨道(一)
  16. Java实现将阿拉伯数字转换为中文数字123=》一二三
  17. 软件需求说明书(GB856T—88)
  18. Algorithm Review 5 图论
  19. 网易新闻APP、喜马拉雅APP数据接口
  20. pixel 更新系统

热门文章

  1. Python链表学习
  2. 无人驾驶的规划与控制(一)——路由寻径
  3. php空间 数据库设计,php进阶之数据库设计/ 选择合适的表引擎
  4. 15-自己写字符串库函数
  5. tgp饥荒 服务器无响应,饥荒TGP版常见运行问题有哪些_TGP版礼包领取及邀请添加好友方法详解_快吧单机游戏...
  6. mysql can't open file: '..frm'_mysqldump 导出数据时出现can’t opne file ‘xx.frm’ (errno:24)错误...
  7. php web 简单的系统,Slim 简单而强大的 PHP 微型 Web 开发框架 - 资源分享
  8. 解决Keras 与 Tensorflow 版本之间的兼容性问题,导入keras报错:module 'tensorflow.python.keras.backend' has no attribute
  9. YFI 创始人 Andre Cronje:有四个新产品待发布,但担心在推出后被分叉
  10. NFT赛车游戏F1® Delta Time启动第二轮2019赛车NFT质押活动