博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象的故事~数据底层操作告诉了我们接口,抽象类,继承与多态性的使用~续(TestBase继承ITest是多余的?)...
阅读量:6717 次
发布时间:2019-06-25

本文共 1290 字,大约阅读时间需要 4 分钟。

在我上一篇文章发表后,收到了很多博友的回复,其中有一位博友提了一个问题,TestBase 继承了ITest是多余的,我认为,我有必要再写一篇文章来说明一下,TestBase为什么要继承ITest,当然各位也可以再次发表自己的看法。

1     ///  2     /// 数据统一接口规范 3     ///  4     interface ITest 5     { 6         ///  7         /// 插入方法 8         ///  9         void Insert();10     }

还是那个统一接口规范,这时,有个ADO.NET 的数据基类,它会去实现它,如下

1     ///  2     /// 统一实体基类 3     /// ADO.NET操作基类 4     ///  5     abstract class TestBase : ITest 6     { 7  8         #region ITest 成员 9 10         public virtual void Insert()11         {12             Console.WriteLine("使用ADO.NET操作方式去实现它");13         }14 15         #endregion16     }

而我们的系统中,还有一种数据源,它叫Linq To SQL,同时它又是一个很好的ORM工具,它帮助我们很好的把实体数据库进行映射进来了。它作为由linq to sql产生的实体的基类,去实现统一接口,如下:

1     ///  2     /// 统一实体基类 3     /// Linq To SQL操作基类 4     ///  5     abstract class TestBase : ITest 6     { 7  8         #region ITest 成员 9 10         public virtual void Insert()11         {12             Console.WriteLine("使用Linq To SQL操作方式去实现它");13         }14 15         #endregion16     }

这时,我们有两个数据基类去实现了这个统一操作接口,这时,如果有其它数据源,如为单元测试提供的内存流数据库,也是去实现统一操作规范。事实上,在DATA层提供了多种实现统一操作接口的方式,而它们的实体子类需要去分别继承各自的基类和自己的个性化接口接口,而最终使用哪种数据库去实现,我们可以通过IOC进行动态设定它。这只是最底层的层次,事实上,在每个实体操作的接口与实现中,还存在着这种关系,而这种关系一定会被约束在配置文件中,你可以根据配置的方式,在程序运行时去动态创建你的实例,当然这同样是IOC干的事。

本文转自博客园张占岭(仓储大叔)的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
shell下office、html、pdf文档互转方法
查看>>
Shell编程基础篇-下
查看>>
OpenShift中的持续交付
查看>>
以操作系统的角度述说线程与进程
查看>>
STL - 容器 - Map(一)
查看>>
python 回溯法 子集树模板 系列 —— 5、取物搭配问题
查看>>
1 张图秒懂 Nova 16 种操作 - 每天5分钟玩转 OpenStack(44)
查看>>
多表外连接的使用
查看>>
ORACLE rman备份之ORA-19809 ORA-19804
查看>>
《夜班医生》观后感
查看>>
SqlBulkCopy批量插入数据时,不执行触发器和约束的解决方法
查看>>
[20170315]简单探究dg的mrp进程.txt
查看>>
JQuery+CSS3实现封装弹出登录框效果
查看>>
在Visual Studio 2017中找不到.NET Framework 4.6.2
查看>>
谈长耗时任务的优化
查看>>
rpc框架之 avro 学习 2 - 高效的序列化
查看>>
回归基础性安全防护:Equifax(艾可飞)事件前车之鉴
查看>>
【妄言之言】我的2016--困境与选择
查看>>
数据库设计---关于建表的时候选择横表和竖表(纵表)的一点思考
查看>>
微信小程序开发(3) 热门电影
查看>>