您好,登錄后才能下訂單哦!
Ruby設(shè)計(jì)模式:
模板方法:定義一個(gè)操作中的算法的骨架 而將一些步驟的實(shí)現(xiàn)延遲到子類中 模板方法使得之類可以不改變算法的結(jié)構(gòu)既可重定義該算法的某些特定步驟。
- #%()用來定義單行字符串 --- 包含“ 并且有字符串插值
- class Report
- def output; puts "#{report_start}#{report_body}#{report_end}"; end
- def report_body
- %(\nbody\n)
- end
- end
- class HtmlReport < Report
- def report_start
- %(<html>)
- end
- def report_end
- %(</html>)
- end
- end
- class TextReport < Report
- def report_start
- %(=start=)
- end
- def report_end
- %(=end=)
- end
- end
- TextReport.new.output
- HtmlReport.new.output
結(jié)果:
=start=
body
=end=
<html>
body
</html>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。