單例模式 抽象類

2021-08-22 07:26:13 字數 1099 閱讀 7450

單例模式

需求:在程式中的任何地方,我們想要獲取某乙個類的唯一物件。

我們稱之為類的單例

singleton

(1)提供乙個私有的靜態的本型別的成員變數

(2)構造器私有化

(3)提供公有的靜態的方法獲取本類中建立的例項。

餓漢寫法:  載入期間就例項化物件

public class singleton

public static singlet on getinstance()

} 懶漢寫法: 呼叫方法時才建立物件

public class singleton

public static singleton getinstance()

return instance;

}}

抽象類:

因為繼承的關係,子類的功能可以越來越具體,相對來說,父類

更加一般化,通用化。因為父類封裝了子類的共同行為,所以,

在定義時,我們可以定義方法的邏輯。有的時候,在父類中無法完成

子類的功能需求,此時,不如不寫,即不寫方法體,**簡單化。

但是此方法必須使用abstract修飾,那麼此型別也必須使用abstract

修飾,即抽象類

1、抽象方法與抽象類

1)用abstract修飾的方法,不需要寫方法體,但是得用分號來結尾

2)有抽象方法的類,必須使用abstract宣告(修飾)

2、抽象類不能例項化

1) 抽象類不能建立物件,沒有意義

2) 抽象類可以提供構造器

3) 抽象類中可以沒有抽象方法

4) abstract和final不能同時修飾乙個型別

3、繼承抽象類

1)若乙個類繼承了抽象類,那麼這個類必須重寫(實現)抽象類的所有抽象方法

2)若乙個類沒有實現抽象類的所有抽象方法, 那麼這個類必須使用abstract修飾

4、抽象類的意義:

1)給不同的子類定義乙個父類

2)抽象類可以封裝子類的共同特徵與共同行為

3)雖然子類方法可能有不能的實現邏輯,但是

方法的定義一致。

抽象類應用 模板模式

公司的專案中有乙個這樣需求,客戶要求對不同的資訊進行匯出功能,如使用者資訊 商品資訊 訂單資訊等等,並且要求數量太大的匯出要進行非同步處理,專案中就採用了模板模式進行了處理。需求確定了,解決方法也確定了,那我們先來看一下模板模式的定義 定義乙個操作中的演算法的框架,而將一些步驟延遲到子類中,使得子類...

抽象類 抽象方法

抽象類 1.類名前有abstruct修飾。有構造方法。在建立抽象類的子類的時候,還是會先建立抽象父類的物件的。2.抽象類不能例項化是指不能手動的new。抽象方法 1.抽象方法 沒有方法體且需要用abstruct關鍵字修飾 作用 需要改變的地方都應該是抽象。抽象方法只能存在於抽象類或介面中。2.有抽象...

抽象類,抽象方法

1 抽象類中可以有實現的方法。抽象方法必須在抽象類中。using system using system.collections.generic using system.linq using system.text namespace test 抽象類可以包含抽象屬性 public int age...