網站制作的節目就像一部電影。好的和壞的之間有很大的區別。一部好電影能讓人想再看一遍,但一部爛電影卻很少有人看。好的程序不僅能解決問題,而且還具有通俗易懂、運行效率高、易于修改等特點。所以。如何寫出好的程序?這是程序員在編程前必須考慮的問題,即需要選擇合適的編程方式。
隨著計算機硬件技術的不斷發展,編程方法也在不斷發展。最早的編程方式叫做個體化方式,每個程序員按照自己的習慣和風格來編寫程序,其結果是程序難以維護。特別是對于較大的程序。個性化的方法導致程序的生命周期縮短。成本增加了,不能滿足需要。經過計算機工作者的努力,編程方法不斷改進。在過去的幾十年里,編程方法主要經歷了兩次革命性的飛躍:結構化方法和面向對象方法。相應地,產生了面向過程編程和面向對象編程。下面分別介紹結構化方法(Structured Method)和面向對象方法(Object-OrientedMethod)。
結構化程序設計,曾被譽為“程序設計方法的革命”,使程序設計從主要依靠程序員的自由活動,轉變為一門有規律可循的科學。它的主要貢獻是推動了編程風格從“追求技巧和效率”向“清晰第一,效率第二”的轉變。這提高了程序的易讀性和可靠性。 1976年,瑞士的Nikiaus Wirth教授在他的經典著作《算法十數據結構二程序》序言中指出,“程序是基于數據的某些特定表示和結構,對算法進行抽象的具體描述”。 "如果不了解應用于數據的算法,就不可能決定如何形成數據;相反,算法的結構和選擇往往在很大程度上取決于底層數據結構。簡而言之,程序組成和數據結構是兩個密不可分的問題。”
Worth 的討論精彩地總結了當時算法和數據結構在編程中的地位和相互關系。 《算法+數據結構兩種方案》。它影響和引導了一代又一代的程序員。從早期的編程語言Fortran、Cobol、ADA、Pascal到現代的C語言,都是面向過程的,都有一個特點:在分析或設計軟件時,開發者總是遵循“程序二次數據結構” 10 “算法”的思想。程序理解為由一組被動數據和一組主動進程組成,這樣的編程方式稱為面向過程的編程方式。
結構化程序設計的普及促進了軟件生產的產業化,緩解了當時的軟件危機。但是,其面向過程的編程思想并不適合日益復雜的應用系統。實踐表明,用結構化技術處理代碼在5000行以內的軟件確實非常有效,但面對當今大型軟件產品的復雜性。但還是無能為力。但是,在客觀事物中,實體內部的“狀態”(用數據表示)和“運動”(對數據的操作)是結合在一起的。這使得使用傳統范式開發的軟件模型(稱為“解決方案域”)人為地偏離了客觀實體本身的模型(稱為“問題空間”,Problem domain)。因此,面向對象的方法應運而生。
在面向對象編程中,數據及其操作被封裝在稱為“對象”的實體中,對象之間通過“消息”相互連接。該機制取代了“數據結構+算法”的思想,從而更好地實現了“解空間”和“問題空間”的一致性,為解決軟件危機帶來了新的希望,從結構化編程到面向對象的先進程序設計是程序設計方法的又一次飛躍,其優越性在軟件開發和維護中日益顯現。
面向對象的思想最初起源于20世紀60年代中期的模擬編程語言Simula 67。 20世紀80年代初出現的Smalltalk語言和1990年代推出的C++、Java語言及其編程環境,成為面向對象技術發展的重要里程碑。 20世紀80年代末以來,面向對象程序設計和面向對象需求分析都得到迅速發展,特別是20世紀90年代中期,Booch、Rumbaugh和Jacobon共同提出了統一建模語言(Unified Modeling Language,CML)。許多面向對象的方法被集成到一個標準中,使得面向對象的方法成為主流的編程方法。
(1)對象((Object),對象是現實世界中個體或事物的抽象表示,是對其屬性和相關操作的統一封裝。屬性表示對象的性質,屬性值指定對象所有可能的狀態,對象的操作是指對象可以對外展示的服務,比如把卡車看成一個對象,它有位置、速度、顏色、容量等屬性。因為可以對對象進行啟動、停止、加速和維護。操作將是或更多
或少地改變卡車的屬性值。(2)類(Class)。類用于表示某些對象的共同特征(屬性和操作),對象是類的實例。例如,汽車類可包含位置、速度、顏色等屬性,以及啟動、停車、加速等操作??ㄜ囀瞧囶惖囊粋€實例。
(3)繼承(Inheritance)類之間可以存在繼承關系,它是現實世界中遺傳關系的直接模擬,可用來表示類之間的內在聯系以及對屬性和操作的共享。子類可以沿用父類(被繼承類)的某些特征,同時子類也可以具有自己獨有的屬性和操作,對于一個類的修改能自動反映到它的所有子類中。例如,飛行器、汽車和輪船都是交通工具類的子類,它們都可以繼承交通工具類的某些屬性和操作。除繼承關系外,現實世界中還大量存在著“部分和整體”關系。例如,飛機可由發動機、機身、機械控制系統、電子控制系統等構成。這種關系在面向對象方法學中可表示為類之間的聚集(Aggregation)關系。在聚集關系下,“部分”類的對象“整體”類對象的一個組成部分。
(4)消息(Message)。消息傳遞是對象與其外部世界相互關聯的唯一途徑。對象可以向其他對象發送消息以請求服務,也可以響應其他對象傳來的消息,完成自身固有的某些操作,從而服務于其他對象.例如。直升飛機可以響應輪船的海難急救信號,起飛,加速,飛赴出事地點并實施救援作業。?對象的操作主要是用來響應外來消息并為其他對象提供服務的,所以它們也被稱作“外部服務”。Coad和Yourdon認為。采用上述4種概念進行開發的軟件系統可以認為是面向對象的。為此,他們把面向對象方法歸結為一個簡單的公式,即面向時象二對象+分類(Classification) +繼承+消息通信(Communication withmessages)。
我們專注高端建站,小程序開發、軟件系統定制開發、BUG修復、物聯網開發、各類API接口對接開發等。十余年開發經驗,每一個項目承諾做到滿意為止,多一次對比,一定讓您多一份收獲!