原創 使用介面還是使用抽象類?

2022-02-07 09:52:57 字數 1302 閱讀 4454

在使用c#的時候,經常會用到集合,慣用的做法是例項化乙個list或collection,然後存放東西就行了。我總是很懶,所以把collection封裝了一下,加了個鎖,可以執行緒安全的訪問了。

這位看官說了:你說的是集合,跟你的標題扯不上關係吧?

是的,到目前為止是的。然而,當我們遇到這樣的問題時:n多個類有相同的屬性或方法。這個時候你第一想到的是介面。沒錯,介面可以很好的表述你的要求。但我要說,請稍等。

你可以使用介面,那麼為什麼不試試抽象類呢?

定義乙個介面,其所有的屬性與方法,你都要在實現類中全部重現。

使用抽象類,在抽象基類裡可以實現一些屬性或方法,子類只需要過載特殊的屬性或方法即可。

不管從實用性還是**簡潔性,抽象類,在我看來是首選。

這也是我不同意下面乙個帖子裡使用介面的原因。

c# 泛型型別必須繼承介面的問題

好了,下面放乙個我自己寫的泛型抽象基類,其使用方法見

原創 c# 正規表示式 讀寫 ini 檔案

namespace goldli.utility.library

//////新增,item可以為null,方便大量新增後賦值

///        ///

"item"

>

public

void add(t item)

finally

}///

///刪除

///        ///

"item"

>

public

void remove(t item)

finally

}public t this[int index]

finally

return result;}}

//////查詢

///        ///

"value"

>

///public

abstract t find(object value);

//////選擇的某個item

///        public t selected 

#region 執行緒安全

//////上鎖

///        public

void lock()

//////解鎖

///        public

void unlock()

#endregion

//////

公開ilist

///        public

newilist list  }

}}

介面,抽象類,類使用心得

今天說說介面,抽象類,類的使用心得 介面 抽象類 類 舉個資料庫繼承的例子 database 介面 abstractdatabase 抽象類 mysql 子類,具體實現類 sqlserver 子類,具體實現類 database 規定資料庫操作 public inte ce databaseabstr...

介面,抽象類,類使用心得

今天說說介面,抽象類,類的使用心得 介面 定義準則 模版 定義全域性屬性 定義方法 抽象類 實現介面中定義的通用方法,所謂通用就是指所有子類使用此方法業務邏輯一樣 不實現介面中定義的不通用方法,所謂不通用就是指所有子類使用業務邏輯不一致,只是部分子類一樣,留給子類自己實現 或 實現個基本邏輯,留給子...

抽象類與介面結合使用

抽象類丶介面的區別 和 抽象類可以不實現介面的全部方法 抽象類可以不用實現介面的全部方法 有的時候需要將介面和抽象類配合起來使用,這樣可以為開發者提供相當的便利性,開發者覺得哪個方便就選用哪個。這樣的抽象類稱為便利類。此時,便利類並不需要實現介面的所有方法,可以留給繼承它的子類去實現它們。這麼做並非...