面向对象的故事~数据底层操作告诉了我们接口,抽象类,继承与多态性的使用~续(TestBase继承ITest是多余的?)

简介:

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

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

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

 1     /// <summary>
 2     /// 统一实体基类
 3     /// ADO.NET操作基类
 4     /// </summary>
 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         #endregion
16     }

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

 1     /// <summary>
 2     /// 统一实体基类
 3     /// Linq To SQL操作基类
 4     /// </summary>
 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         #endregion
16     }

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

本文转自博客园张占岭(仓储大叔)的博客,原文链接:面向对象的故事~数据底层操作告诉了我们接口,抽象类,继承与多态性的使用~续(TestBase继承ITest是多余的?),如需转载请自行联系原博主。

目录
相关文章
|
机器学习/深度学习 自然语言处理 数据可视化
基于Python+词云图+情感分析对某东上完美日记的用户评论分析
基于Python+词云图+情感分析对某东上完美日记的用户评论分析
872 0
基于Python+词云图+情感分析对某东上完美日记的用户评论分析
|
存储
ASCII码可以表示汉字吗?
ASCII码可以表示汉字吗?
4752 0
|
NoSQL API 调度
.NET开源的轻量化定时任务调度,支持临时的延时任务和重复循环任务(可持久化) - FreeScheduler
.NET开源的轻量化定时任务调度,支持临时的延时任务和重复循环任务(可持久化) - FreeScheduler
386 0
|
算法 程序员 C语言
【深度揭秘】汇编语言:现代编程中不可或缺的秘密武器!它如何在幕后操控一切?
【8月更文挑战第31天】随着计算机科学的进步,尽管高级编程语言因易读和可维护而流行,汇编语言在特定领域仍不可或缺。本文介绍汇编语言基础及其在现代编程中的应用。汇编语言通过助记符表示机器码,便于编写和理解。例如,在x86架构下,加法指令可表示为 `add eax, ebx`。尽管高级语言提供更高抽象,但在优化性能瓶颈(如矩阵乘法)和嵌入式系统中精确控制硬件方面,汇编语言依然发挥重要作用。例如,通过AVX-2指令集优化矩阵乘法,或在实时系统中实现精确时间延迟。这些示例展示了汇编语言在现代编程中的独特价值。
257 3
|
人工智能 云栖大会
2024云栖大会,我们来了!
2024云栖大会亮点介绍
732 1
|
存储 机器学习/深度学习 缓存
一文弄懂Python字典的使用
Python是一门广泛应用于数据分析、机器学习等领域的语言,而字典作为Python中最常用的数据类型之一,也被广泛使用。本文将详细介绍Python字典的相关知识点,包括字典的基础用法、高级用法、原理、优缺点、性能评估、使用场景、小技巧等等。
330 4
汉化FC(红白机)游戏需要用到哪些技术?
这篇文章介绍了FC(红白机)游戏文本汉化的基本流程和技术知识。主要步骤包括分析游戏ROM、寻找文本字符串、学习游戏代码、修改文本、修改ROM头信息、重新映射、测试和修正。文章还提供了汉化实例,详细讲解了如何使用各种工具,如VirtuaNES Debugger、NO$NES、6502 Simulator等进行ROM分析和修改。此外,文章还介绍了如何使用汇编语言编写自定义程序以实现大字体汉化和在游戏画面切换时恢复原来的VROM。整个过程需要对6502汇编语言、NES硬件架构和ROM结构有一定的理解和编程经验。
|
算法 Java 计算机视觉
图像处理之积分图算法
图像处理之积分图算法
316 2
|
存储 人工智能 NoSQL
现代数据库技术演进与应用前景分析
本文探讨了现代数据库技术的演进历程及其在各领域的应用前景。首先介绍了传统数据库的局限性,随后分析了NoSQL、NewSQL以及分布式数据库等新兴技术的特点和优势。接着探讨了人工智能、物联网、大数据等领域对数据库技术提出的新要求,并展望了未来数据库技术的发展趋势与应用前景。
|
人工智能 自然语言处理 搜索推荐
元宇宙与人工智能之间的关系紧密而复杂,它们相互影响、相互促进,共同推动了科技的进步和发展。以下是对这两者关系的详细分析:
元宇宙,融合扩展现实、数字孪生和区块链,是虚实相融的互联网新形态,具有同步、开源、永续和闭环经济特点。人工智能则通过模拟人类智能进行复杂任务处理。在元宇宙中,AI创建并管理虚拟环境,生成内容,提供智能交互,如虚拟助手。元宇宙对AI的需求包括大数据处理、智能决策和个性化服务。两者相互促进,AI推动元宇宙体验提升,元宇宙为AI提供应用舞台,共同驱动科技前进。

热门文章

最新文章