周佳明 陳俊杰 河北農(nóng)業(yè)大學(xué)
程序設(shè)計(jì)語言經(jīng)歷了由無類型到帶類型,由簡單的基本類型到復(fù)雜的結(jié)構(gòu)類型、抽象數(shù)據(jù)類型的發(fā)展。面向?qū)ο蟪绦蛟O(shè)計(jì)引入了多態(tài)類型,多態(tài)類型是指一個數(shù)據(jù)對象可以有多個類型,具體類型由其所在的上下文確定。多態(tài)性的引入對于改善程序的性能、保證程序的正確性、提高程序的可讀性大有益處,為軟件功能的擴(kuò)展提供了極大的方便。
面向?qū)ο蟪绦蛟O(shè)計(jì)的客體就是現(xiàn)實(shí)世界中客觀存在的實(shí)體以及人們對這個世界的認(rèn)知和改變的客體,它們所一一對應(yīng)的是現(xiàn)實(shí)世界中存在的那些現(xiàn)實(shí)客體的抽象化表現(xiàn),并與其有著密不可分的直接性關(guān)系,并相互對應(yīng)而面向?qū)ο蟪绦虻脑O(shè)計(jì)開展過程中,對象是其設(shè)計(jì)中最為關(guān)鍵和核心的一種觀念,并需要調(diào)節(jié)好每個對象之間的相互協(xié)作,這就是面向?qū)ο蟪绦蛟O(shè)計(jì)。
在面向?qū)ο蟪绦蛟O(shè)計(jì)開展之前,有一種結(jié)構(gòu)化的程序設(shè)計(jì)是產(chǎn)生在其設(shè)計(jì)之前的,那就是面向過程的程序設(shè)計(jì)。這種程序設(shè)計(jì)產(chǎn)生于面向?qū)ο蟪绦蛟O(shè)計(jì)之前,具有從上到下,慢慢細(xì)化的結(jié)構(gòu)特點(diǎn),并且將功能作為其主要設(shè)計(jì)核心,將函數(shù)作為其程序設(shè)計(jì)的主要基礎(chǔ)部分,而數(shù)據(jù)在其設(shè)計(jì)過程中作用意義并不很大,往往只處于從屬地位。這樣的程序設(shè)計(jì)概念的實(shí)施與操作,更容易幫助人們?nèi)ゼ由罾斫夂驼莆?,但是也具有著不能處理?fù)雜性問題及單一性等問題。
因此為了能夠滿足更多人的需求和更多領(lǐng)域的需要,一種操作更加簡單,涉及范圍更加廣泛的程序設(shè)計(jì)思想就出現(xiàn)了——面向?qū)ο蟪绦蛟O(shè)計(jì)它的出現(xiàn)與實(shí)施幫助軟件開發(fā)更加的便捷與高效,其設(shè)計(jì)主要的思想就是有效的將客戶的主觀思想帶入到軟件開發(fā)與程序設(shè)計(jì)中去,在設(shè)計(jì)與落實(shí)的過程中始終堅(jiān)持以“對象”為設(shè)計(jì)的核心理論基礎(chǔ),并且在其設(shè)計(jì)理念中堅(jiān)持的是一種由下到上的觀念,并將“數(shù)據(jù)”為其設(shè)計(jì)開展的主要核心和中心,并緊緊圍繞其發(fā)展,而類就變成了其程序設(shè)計(jì)最最基礎(chǔ)的設(shè)計(jì)單位,面向?qū)ο蟪绦蛟O(shè)計(jì)這種獨(dú)特的設(shè)計(jì)理念和特性,對于設(shè)計(jì)者而言能使其在設(shè)計(jì)過程中從內(nèi)部更加深入細(xì)致的加深了解時也能在程序設(shè)計(jì)完成之后提高程序使用的靈活性和高效性,比較適合開發(fā)大型復(fù)雜軟件,是目前較為重要的程序設(shè)計(jì)方法之一。
多態(tài)性,就如同其名字字面意思,就是一種客觀載體有多重形態(tài)的意思,在面向?qū)ο蟪绦蛟O(shè)計(jì)過程中其多態(tài)主要表現(xiàn)在一種程序設(shè)計(jì)方法中,可能有著相同的名稱,但是它們在設(shè)計(jì)過程中的設(shè)計(jì)參數(shù),設(shè)計(jì)過程等方式都各不相同并具有著多種聯(lián)通組合的方式,而在后來的面向?qū)ο蟪绦蛟O(shè)計(jì)中,多態(tài)性的表現(xiàn),最主要的是表現(xiàn)在一種程序設(shè)計(jì)方式在相同和不同的設(shè)計(jì)對象中所反饋和呈現(xiàn)的不同的多樣性的結(jié)果其優(yōu)勢就在于在這種特性下,程序設(shè)計(jì)中所內(nèi)部允許的對象可根據(jù)不同想?yún)?shù)形式及反饋信息作出不同的操作響應(yīng),這樣就大大提升了程序的運(yùn)作效率,并提高了其處理復(fù)雜性問題的能力。
(1)靜態(tài)多態(tài)性。在面對對象程序設(shè)計(jì)過程中,函數(shù)的參數(shù)模式是由多個方面所構(gòu)成的,參數(shù)類型、個數(shù)、以及順序,構(gòu)成了該函數(shù)的參數(shù)模式,并且伴隨著一定量的同名方法函數(shù),它們的參數(shù)模式也有著很大的不同與差異性而這種現(xiàn)象的存在就被稱為“方法重載”,其主要表現(xiàn)在在一個使用了方法重載的應(yīng)用程序中,編譯系統(tǒng)在編譯階段會根據(jù)被調(diào)用方法的實(shí)際參數(shù)的情況找到與之相一致的重載方法執(zhí)行,即根據(jù)參數(shù)模式的匹配來確定執(zhí)行哪一個具體的重載方法,進(jìn)而完成相應(yīng)的功能這種多態(tài)性即被稱為靜態(tài)多態(tài)性,即方法重載機(jī)制是實(shí)現(xiàn)靜態(tài)多態(tài)性的一種途徑。
(2)動態(tài)多態(tài)性。其主要特征表現(xiàn)在面對對象程序設(shè)計(jì)過程中出現(xiàn)函數(shù)及方法的首部相同,但是主體不同時的情況這種現(xiàn)象和特征有時也被稱之為方法的重寫或者覆蓋,當(dāng)在程序設(shè)計(jì)過程中出現(xiàn)了這樣的程序和過程時,在一個出現(xiàn)了方法重寫的程序中,如果子類對象調(diào)用了重寫的方法,這時在編譯時就能夠確定執(zhí)行哪個重寫方法了,即為調(diào)用該對象所屬子類中的定義的重寫方法;如果父類變量引用(指向)子類對象,這時具體執(zhí)行哪個重寫方法需要到程序運(yùn)行時才能夠確定,它更能體現(xiàn)同一個消息,有不同的執(zhí)行過程和不同的執(zhí)行結(jié)果。后者被稱為動態(tài)多態(tài)性,這種多態(tài)性是通過方法重寫的機(jī)制實(shí)現(xiàn)的。
綜上所述,多態(tài)性作為面向?qū)ο蟪绦蛟O(shè)計(jì)過程中最為重要的特點(diǎn)與觀念之一,在面向?qū)ο蟪绦蛟O(shè)計(jì)過程中對其發(fā)展起著至關(guān)重要的作用,并因?yàn)槠涠鄳B(tài)性的特征,讓面向?qū)ο蟪绦蛟O(shè)計(jì)的理念和思路更加成熟,并且更加高效,因此在今后的相關(guān)研究中,將繼續(xù)對此展開更加深入的剖析和了解,加深對其認(rèn)知,從而為后來的相關(guān)研究提供更多的建設(shè)性意見。