就說說"我"上小學的的糗事吧。post
我上小學的時候學習成績很是的差,班級上 40 多個同窗,我基本上都是在排名 45 名之後,依照老師給個人定義就是「不是讀書的料」,但是我老爸管的很是嚴格,明知道我不是這塊料,仍是往趕鴨子上架,每次考試完成我都是戰戰兢兢的,「竹筍炒肉」是確定少不了的,能少點就少點吧,肉但是本身的呀。學習
四年級期末考試考完,學校出來個很是損的招兒(這招兒現在很是流行的),打印出成績單,要家長簽字,而後才幹上五年級,我那個恐懼呀,只是也就是幾秒鐘的時間,玩起來什麼都忘記了。當時。個人成績(語文 62 數學65 體育 98 天然 63),你要知道在小學低於 90 分基本上就是中下等了,唉,愛學習的人太多了!怎麼着,那我把這個成績單給老爸看看?ui
就這成績還要我簽字?ssr
!老爸就開始找笤帚,個人屁股已經作好了準備,肌肉要繃緊,要不那個太疼了!哈哈,幸運的是,這個不是當時的真實狀況,我沒有直接把成績單交給老爸,而是在交給他以前作了點技術工做,我要把成績單封裝一下,封裝分類兩步走:code
第一步:跟老爸說各個科目的最高分,語文最高是 75,數學是 78,天然是 80,然老爸覺的我成績與最高分數相幾乎相同,這個是實情,但是不知道是什麼緣由,反正期末考試都考的不怎麼樣,但是基本上都集中在 70 分以上,我這 60 多分基本上仍是墊底的角色;數學
第二步:在老爸當作績單後,告訴他我是排名第 38 名,全班,這個也是實情,爲啥呢?it
有將近十個同窗退學了!這個狀況我是不說的。不知道是否是當時第一次發成績單,學校沒有考慮清楚,沒有寫上總共同擁有多少同窗,排名第幾名等等,反正是被我鑽了個空子。類圖例如如下:io
require "class" --------ISchoolReport------- ISchoolReport = class() function ISchoolReport:Report() end function ISchoolReport:Sign(name) end --------FouthGradeSchoolReport------- FouthGradeSchoolReport = class(ISchoolReport) function FouthGradeSchoolReport:Report() print("----------FouthGradeSchoolReport:Report-----------") print("尊敬的XXX家長:") print(".......") print("語文62 數學65 體育98 天然63") print(".......") print(" 家長簽名:") end function FouthGradeSchoolReport:Sign(name) print("家長簽名爲:", name) end --------ReportDecorator------- ReportDecorator = class(ISchoolReport) function ReportDecorator:ctor(psr) self.m_pSchoolReport = psr end function ReportDecorator:IReport() print("----------ReportDecorator:IReport-----------") self.m_pSchoolReport:Report() end function ReportDecorator:Sign(name) self.m_pSchoolReport:Sign(name) end --------HighScoreDecorator------- HighScoreDecorator = class(ReportDecorator) function HighScoreDecorator:Report() print("----------HighScoreDecorator:Report-----------") self:ReportHighScore() self:IReport() end function HighScoreDecorator:ReportHighScore() print("此次考試語文最高是75, 數學是78, 天然是80") end --------SortDecorator------- SortDecorator = class(ReportDecorator) function SortDecorator:ReportSort() print("我是排名第38名...") end function SortDecorator:Report() print("----------SortDecorator:Report-----------") self:IReport() self:ReportSort() end --------test------- function DoIt() local psr = FouthGradeSchoolReport.new() psr:Report() psr:Sign("老三") end function DoNew() print("----------分部分進行裝飾----------") local psr = FouthGradeSchoolReport.new() -- 原裝成績單 local pssr = SortDecorator.new(psr) -- 又加了成績排名的說明 local phsr = HighScoreDecorator.new(pssr) -- 加了最高分說明的成績單 phsr:Report() phsr:Sign("老三") end --- main --- function main() --DoIt() DoNew() end main()執行結果: