在開發過程當中,其實老是能夠聽到「抽象」這個詞。我想說說抽象是什麼意思。其實人類處理的全部信息都是抽象的,在這個層面上的抽象指的就是提取事務的共性。抽象是一個動做,抽象的結果每每就會產生一個概念。而一個概念每每有其內涵和外延。這些是哲學方面的一些內容。在人們的平常工做以及生活中,每每還有許多約定俗成的概念,這些概念構成一我的平常生活的精神環境,若是這些概念發生變化,那麼其中的人每每會感受很難受。所以人們每每不肯接受改變,其實也就是由於這個緣由。java
軟件開發領域中的抽象其實隨處可見,可是人們每每聽過的就是抽象類。抽象類是java語言中的一個概念,因爲java語言十分的流行,因此大多數寫過程序的人,每每都據說過這個概念。因此一說「抽象」這個詞,不少人就會馬上想到抽象類上面去。但其實否則。程序員
在我看來,軟件開發中的抽象指的是:**用某種技術手段來區分和確立程序中不變的部分和可變的部分。**由於程序以及軟件都是解決問題的,有所不一樣的是,程序可能解決的是一個小問題,而軟件每每解決都都是複雜一些的大問題。因此軟件中抽象就很重要。編程
爲何須要區分程序中不變和可變的部分?我以爲主要有如下幾個緣由:設計
在我看來,經過設計其實每每很難一次就獲得一個很是好的抽象,由於你須要同時很是瞭解業務和編程技術,同時精通這二者的人很少。因此好的抽象通常都須要經過不斷的重構來得到。所以軟件開發不是一個一錘子買賣,一個好的軟件每每須要持續不斷的投入,才能愈來愈好。事務
綜上,我認爲,軟件開發中所謂的抽象,其實就是分離主次。主要的東西須要固定不變,次要的東西缺每每須要變化無窮。那麼分離變化與不變,就是在作分離主次的工做。所謂主次分明,層次分明。這樣的系統才容易擴展和維護。開發