時間:1月11日地點:大B房間人物:大B,校
小A:“很多人都吃過三明治,都會知道三明治必不可少的是兩塊麵包片,然後可以在夾層裏加上蔬菜、沙拉、鹹肉等等,外麵可以塗上奶油之類的。”
大B:“假如現在你要為一個三明治小店構造一個程序,其中要設計各種三明治的對象。可能你已經創建了一個簡單的Sandwich對象,現在要產生帶蔬菜的就是繼承原有的Sandwich添加一個蔬菜的成員變量,看起來很‘正點’的做法,以後我還要帶鹹肉的、帶奶油的、帶蔬菜的又分為帶青菜的、帶芹菜的、生菜的……還是一個一個繼承是吧!假如我們還需要即帶蔬菜又帶其它肉類,設置我們還要求這些添加成分的任意組合,那你就慢慢繼承吧!”
小A:“嗬嗬。”
大B:“讀過幾年書的會下麵這個算術,我們有n種成分,在做三明治的時候任意搭配,那麼有多少種方案呢?!算算吧!你會有驚人的發現。N種成分,什麼都不要是Cn0種方案吧!要1種是Cn1吧……要n種是Cnn吧!”
小A:“加起來不就是嗎?”
大B:“牛頓萊布尼茲公式記得吧!總共2的n次方案。有可能前麵10天寫了K個類,老板讓你再加一種成分你就得再幹10天,下一次再加一種你可得幹20天哦!同時你可以發現你的類庫急劇地膨脹!老板可能會說你:XXX前K天你加了n個成分,怎麼現在這麼不上進呢?後K天隻加了1個成分啊?!可能你會拿個比給老板算算,老板那麼忙會睬你嗎?有可能你的老板會說:不管怎麼樣我就要你加,K天你還給我加n個成分!”
小A:“嗬嗬,怎麼辦啊!跳槽啊!”
大B:“跳槽了也沒人要你!人家一看就知道你沒學設計模式。”
(本章完)