大話設計模式 第十章 模板設計模式 小說試卷列印

2021-10-22 07:24:57 字數 1059 閱讀 2349

一職責拆分成若干職責 公共職責抽取到父類 變化職責下層到子類

可沒明確職責 如空介面 封裝的的是品牌 有點牽強啊

可現在沒變化 但不代表未來沒變化 實現類只要想誰時可複寫

使用該模式的例子應該是一大把一大把的 如abstract開頭的類

public

abstract

class

testpager

protected

abstract

void

initquestionsandanswers()

;protected

abstract

intgetmaxquestionnum()

;protected

abstract string gettestpagename()

;protected testpager addquestion

(string question,string answer)

questions[questionnum]

= question;

answers[questionnum++

]= answer;

return

this;}

public

void

printtestpager()

consoleutil.

println(""

);}}

public

class

noveltestpager

extends

testpager

@override

protected

intgetmaxquestionnum()

@override

protected string gettestpagename()

}@test

public

class

testpagertest

}

第十章 模板方法模式

模板方法模式 templatemethod 定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟 基本 include includeusing namespace std abstractclass是抽象類,其實也就是乙...

第十章 函式

使用def關鍵字 定義個數可變的位置形參 定義個數可變的關鍵字形參 定義預設值引數 定義個數可變的位置形參 deffun1 args 結果為乙個元組 print args fun1 10,20,30 10,20,30 定義個數可變的關鍵字形參 deffun2 args 結果為乙個字典 print a...

第十章 屬性

z屬性 本章也比較簡單稍作介紹 無參屬性就是我們常見的屬性 可以封裝屬性 以執行緒安全方式訪問 有參屬性就是c 中的所引器 匿名型別 如圖遇到如下 具體點就是 上面的注釋也已經講清楚了,定義的型別之後,構造例項,然後初始化屬性。現在詳細說下 編譯器接收到 上圖 先用var 定義乙個型別,但是不具體指...