日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面向对象的故事~数据底层操作告诉了我们接口,抽象类,继承与多态性的使用~续(TestBase继承ITest是多余的?)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在我上一篇文章發表后,收到了很多博友的回復,其中有一位博友提了一個問題,TestBase?繼承了ITest是多余的,我認為,我有必要再寫一篇文章來說明一下,TestBase為什么要繼承ITest,當然各位也可以再次發表自己的看法。

1 /// <summary>2 /// 數據統一接口規范3 /// </summary>4 interface ITest5 {6 /// <summary>7 /// 插入方法8 /// </summary>9 void Insert(); 10 }

還是那個統一接口規范,這時,有個ADO.NET 的數據基類,它會去實現它,如下

1 /// <summary>2 /// 統一實體基類3 /// ADO.NET操作基類4 /// </summary>5 abstract class TestBase : ITest6 {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 : ITest6 {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是多余的?),如需轉載請自行聯系原博主。

總結

以上是生活随笔為你收集整理的面向对象的故事~数据底层操作告诉了我们接口,抽象类,继承与多态性的使用~续(TestBase继承ITest是多余的?)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。