要明確設(shè)計模式和算法哪個更重要,首先要清楚設(shè)計模式和算法的作用,對程序員來說設(shè)計模式和算法都是一定要掌握的內(nèi)容。下面就給大家介紹一下設(shè)計模式和算法的由來以及應用價值,主要從應用的角度出發(fā)(非學術(shù)角度)。
設(shè)計模式
設(shè)計模式這個概念最早是由建筑設(shè)計領(lǐng)域的著名大師克里斯托弗.亞歷山大在上世紀70年代提出的,其目的是總結(jié)現(xiàn)存成功建筑物的特點,為年輕的建筑師提供快速成長的途徑。在上世紀90年代設(shè)計模式被GOF(一個小組織)引入到軟件工程領(lǐng)域,并隨后得到廣泛的關(guān)注和使用。
簡答的說設(shè)計模式是經(jīng)典解決方案,是很多工程師經(jīng)驗的總結(jié),是實戰(zhàn)論。設(shè)計模式不是新方案,但一定是可靠的解決方案,是從實踐中總結(jié)出來的經(jīng)典方案。所以,作為年輕的程序員,一定要認真學習設(shè)計模式,設(shè)計模式提供了一個快速成長的途徑。對經(jīng)驗豐富的程序員來說,各種模式已經(jīng)使用的很熟練了,并不需要強調(diào)模式的作用和價值了。
軟件設(shè)計模式分為三個大的類型共23種,有創(chuàng)建型模式、結(jié)構(gòu)型模式和行為型模式,每個大的類型下面又細分成不同的具體類型(關(guān)于設(shè)計模式的細節(jié)可以參考我后面的文章)。
算法
簡答的說算法就是解決問題的方法。軟件設(shè)計的核心問題就是算法,所以對程序員來說掌握算法就是掌握了問題的解決辦法。通常解決問題的第一步就是進行算法設(shè)計,只有確定了算法才能進行程序設(shè)計,程序設(shè)計就是實現(xiàn)算法的過程。
通常算法有五個特征,分別是有窮性、確切性、輸入項、輸出項、可行性,而評價一個算法主要從時間復雜度和空間復雜度兩方面來考慮。
無論是做人工智能、大數(shù)據(jù)、云計算還是區(qū)塊鏈,算法都是核心。所以對程序員來說掌握算法的實現(xiàn)是非常重要的,各種算法的學習也是一名程序員的必經(jīng)之路。
設(shè)計模式和算法都非常重要,在程序員的初期階段,算法要比較重要,因為了解算法才能實現(xiàn)算法進而完成功能實現(xiàn)。
在程序員中期模式比較重要,因為模式關(guān)乎項目整體的穩(wěn)定性和可用性。
關(guān)注我,了解更多關(guān)于程序開發(fā)的內(nèi)容。