2 C 設計模式及實際應用 繼承

2021-10-23 09:39:07 字數 1565 閱讀 4430

關於繼承和多型,它是物件導向設計思想的核心所在。它們的語法細節,很多書籍和教程上都有詳細的講解,這裡就不再贅述了,本節將重點講解繼承和多型的設計思想和實際應用場景。

例如我們在開發一款手機遊戲裡面的彈窗介面,有使用者彈窗、好友彈窗、展示彈窗、設定彈窗、提示彈窗、警告彈窗,功能如下:

實際專案中的功能會更多更複雜

當我們不考慮繼承時候,**實現是這樣子的

class

userdailog

;class

frienddailog

;class

displaydailog

;class

settingdailog

;class

tipsdailog

;class

warningdailog

;

從上面的**可以看出,每乙個類都有乙個重複的show、hide方法,並且size屬性的值總共也只有三種。我們該如何提高**的復用率,不再去重複的拷貝貼上show、hide方法以及size屬性呢?

繼承將會是乙個非常有效的解決辦法,我們可以將show和hide封裝成乙個一級基礎類basedailog,然後將size封裝成三個二級基礎類smalldailog、mediumdailog和largedailog,它們都繼承於basedailog類。

基礎類的**實現

// 一級基礎類

class

basedailog

;// 二級基礎類

class

smalldailog

:public basedailog

;class

meduimdailog

:public basedailog

;class

largedailog

:public basedailog

;

功能彈窗類的**實現

class

userdailog

:public meduimdailog

;class

frienddailog

:public meduimdailog

;class

displaydailog

:public largedailog

;class

settingdailog

:public largedailog

;class

tipsdailog

:public smalldailog

;class

warningdailog

:public smalldailog

;

相比於之前不使用繼承的**,使用繼承的**更加精簡,同時也方便擴充套件,假如後續需要新增乙個簽到彈窗,我們只需要增加乙個setsignatureinfo方法即可

signaturedailog :

public meduimdailog

;

9 C 設計模式及實際應用 狀態模式

狀態模式也是實際開發中應用非常廣泛的一種設計模式,該模式可以有效地減小 中switch和if的分支量,使 更簡潔,更容易擴充套件。接下來我們舉乙個電梯控制系統的例子,電梯有4個功能,分別是關門 開門 執行 停止,同時也有4種狀態,分別是關門狀態 開門狀態,執行狀態 停止狀態。下面是使用狀態模式前的實...

bios硬碟模式的選取及實際應用

如果你對bios了解的話,那麼你應該知道硬碟模式選項,對於該選項我們應該如何選取呢?實際案例 伺服器某些時候斷電啟動或重啟找不到硬碟,但開機自檢及bios都可以看到硬碟確確實實是存在的,但為什麼引導時卻找不到引導介質呢?這個問題困擾了我好久,現在基本上可以確定的是ahci模式對sata的介面支援不是...

模板設計模式 抽象類的實際應用

抽象類的最大特點在於強制規定了子類的實現結構,除了這個特點以外,抽象類更多情況下起到乙個模板的作用 下面舉乙個例子 人 吃飯 睡覺 工作 豬 吃飯 睡覺 機械人 吃飯 工作 定義行為類 abstract class action 不確定具體實現,但是行為應該定義好 public abstract v...