EIT造型技術思維(一)_繼承??抽象??_基底(父)類別並非抽象出來的
在 作者Fred Brooks所撰寫的 The Mythical Man-Month一書中 曾有提及到 "The complexity of software is an essential property, not an accidental one." 軟體複雜是與生俱來的性質 因此程式人員通常會希望愈簡單愈好 化繁為簡 通常面對複雜情況會傾向找到簡單或是邏輯一致的規則 才不會害怕 到底怎麼從複雜轉化成簡單? 通常會去關注變化和差異 將差異去除提取抽象的共同結構(留下萬變不離其宗的共通性過程就稱為抽象) 比方說: 三角形、正方形、長方形在這些具象中觀察變化 變化上就是面積、邊長、等等 那我們會提取出形狀的一個抽象結構 (從本質上來看這些都是形狀,形狀通常都會有面積、內角和等等屬性) 這是以往的思維但也就涉及到你必須找到 所有的具象,這就會導致不敏捷,因為需要找很久。 這裡舉生活化一點的例子 假設今天你面對的具象是 茶葉、水果、咖啡豆 請進行抽象 這時你會開始苦惱不像剛剛的形狀這麼理想這麼容易找到共通點 信用卡 MasterCard、Visa、........一堆具象要找到所有實在太耗時此外一些不同銀行變化 規則更複雜 或者抓一堆貓 每隻鬍鬚都不同這時你把鬍鬚去除 每隻尾巴也都不同乾脆也去除 .....其他又有不同的比如眼睛、鼻子、..... 因此我們得到 一個沒有尾巴、沒有鬍鬚、沒有眼睛、嘴巴的這個叫貓 確實得到簡單(不變的部分)但也傷害到其完整性 因此若要敏捷就不能在尋找不變!!!!!! 杯子並非從果汁、咖啡當中抽想出來的,但不論果汁跟咖啡都能裝進去 皮包也不是從一堆生活物品中抽象出來的不變部分 Essence 簡單一詞其實於東西方認知是有差異的 西方人認為簡單一詞是指 不可或缺的 東方人則認為是永恆不變的本質或真理 一隻貓就必須要有尾巴、鬍鬚所以不能去除 那要如何達到簡單呢?? 你不用刪除也不需要去剖析差異直接把一整隻貓裝進皮帶中 過去我們追求不變,追求不變作法則是將變化刪除,而非有效掌握變化。 上述提到的東西方觀點 其實只是不同視角、思維(一體兩面) 任何視角本身無對錯、更多視角才能讓設計更可靠。 比