關於繼承和多型,它是物件導向設計思想的核心所在。它們的語法細節,很多書籍和教程上都有詳細的講解,這裡就不再贅述了,本節將重點講解繼承和多型的設計思想和實際應用場景。
例如我們在開發一款手機遊戲裡面的彈窗介面,有使用者彈窗、好友彈窗、展示彈窗、設定彈窗、提示彈窗、警告彈窗,功能如下:
實際專案中的功能會更多更複雜當我們不考慮繼承時候,**實現是這樣子的
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...