萬年前,人類用肢體力量來擴充套件地盤、獲取食物,那時候比的是發育。後來人們學會了使用工具。開始利用石頭、棍棒。
再後來,人類有了文明,刀槍棍棒使得身體素養不是唯一決定強弱的唯一條件。再後來。一些聰明人依據人們的打鬥習慣再增加哲學的思考,以攻守進退、運動疾徐、剛柔虛實為原則。發明了武術,即使一些身體素養不好的人。依據自己的情況學習對應的武術也能成為武術高手。這都要感謝發明武術秘籍的人,也要感謝社會的發展對武術人才的需求。
到如今,人類發明了火槍。即使乙個殘疾人也能把乙個壯漢打死,這在曾經是不可想象的。
幾十年前。計算機剛剛被發明, 人們用它來解決一些簡單的問題,程式猿編一些簡短的**實現些簡短的功能。他們編寫過程隨心所欲,個成風格。隨著社會對計算機及其功能的需求急劇增大。留給程式猿的問題也越來越大,這時不是每乙個程式猿都能編寫出合格的軟體。人們陷入了軟體危機,僅僅有個別天才幹利用自己的智慧型解決好問題。
他們達成一致,總結出解決這個問題的方法供後人學習。
以致我們學習幾年程式設計技術,就能達到一定水平。隨著這些「武功秘籍」的出現,對程式猿的要求越來越低。人們使用好工具,懂原則、模式就能編寫**。我相信。過幾十年。程式猿用嘴說句話對應的軟體就能編寫出**。
隨著對《設計模式》的學習,我覺得這門學科就是程式猿的武功秘籍,它是前輩們智慧型的結晶。告訴了我們可能遇到的各種問題以及解決方法。從機器語言到高階語言。從過程式的開發到物件導向式的開發,這是軟體開發複雜化的體現。也是技術前進的體現。
軟體開發的複雜化體現之中的乙個就是需求的多變性。
面向過程通過劃分功能模組,通過函式相互間的呼叫來實現,需求變化時,就須要更改函式,而修改的函式有可能在多處被呼叫。關聯多種資料。使得**維護和除錯變得機場艱難。
峰迴路轉,物件導向的程式設計方式的誕生,攻克了變化帶來的問題。物件導向關注的是物件。能夠定義自己負責的事物,做要求它自己做的事情。開發人員。把需求理解成乙個乙個的物件。然後製造這些物件,讓他們互相呼叫,直至符合業務須要。這時候,假設需求再發生改變。我們能夠封裝這些變化區域,從而更easy將**與變化產生的影響隔離開來。
有了物件導向技術。開發人員能夠通過**的設計使需求的變化不至於產生太大的影響,可是這也對設計開發提高了難度。物件導向設計的複雜性使總體開發再次陷入困境。而設計模式的出現給了我們解決方式,使我們能站在巨人的肩膀上解決複雜的問題。
設計模式總結 程式設計師的武功秘籍(下)
設計模式總結 程式設計師的武功秘籍 上 介紹了設計模式產生的原因及其必要性。那設計模式有什麼具體內容呢?首先設計模式作為物件導向發展的產物,它需要物件導向基礎,包括一些重要的概念啊 三大特性什麼的。其次,根據物件導向思想,結合解決問題的實際情況衍生了五大原則。最後就是利用物件導向的基礎和五大原則,總...
設計模式 程式猿必備物件導向設計原則
單一職責原則srp single responsibility principle 就乙個類而言,應該僅有乙個引起它變化的原因。開放 關閉原則ocp open closed principle 乙個軟體的實體應該對擴充套件開放,對修改關閉。黎克特制代換原則 liskov substitution p...
程式架構設計之總結23種設計模式
程式架構設計 本章主要講解程式設計的設計模式,開發 過程中 質量很重要的,包括健壯性 可維護 可擴充套件 可替換復用等等,比如 開閉原則 對擴充套件開放,對修改關閉,在不修改現有 的前提下對程式進行擴充套件 等等。所以什麼場景採用什麼設計模式是需要考慮從整體權衡。那麼什麼是程式的設計模式呢?專業的解...