溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Ruby模版方法

發(fā)布時(shí)間:2020-06-26 03:59:50 來源:網(wǎng)絡(luò) 閱讀:529 作者:yangbin1103 欄目:編程語言

 

Ruby設(shè)計(jì)模式:

模板方法:定義一個(gè)操作中的算法的骨架 而將一些步驟的實(shí)現(xiàn)延遲到子類中 模板方法使得之類可以不改變算法的結(jié)構(gòu)既可重定義該算法的某些特定步驟。

  1. #%()用來定義單行字符串 --- 包含“ 并且有字符串插值 
  2. class Report 
  3.   def output; puts "#{report_start}#{report_body}#{report_end}"end 
  4.   def report_body 
  5.     %(\nbody\n) 
  6.   end 
  7. end 
  8.  
  9. class HtmlReport < Report 
  10.   def report_start 
  11.     %(<html>) 
  12.   end 
  13.   def report_end 
  14.     %(</html>) 
  15.   end 
  16. end 
  17.  
  18. class TextReport < Report 
  19.   def report_start 
  20.     %(=start=) 
  21.   end 
  22.  
  23.   def report_end 
  24.     %(=end=) 
  25.   end 
  26. end 
  27.  
  28. TextReport.new.output 
  29. HtmlReport.new.output 

結(jié)果:

=start=

body

=end=

<html>

body

</html>

 









 

向AI問一下細(xì)節(jié)

免責(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)容。

AI