計(jì)算機(jī)編程思想與AOP編程思想研討

時(shí)間:2022-06-04 03:44:00

導(dǎo)語(yǔ):計(jì)算機(jī)編程思想與AOP編程思想研討一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢(xún)客服老師,歡迎參考。

計(jì)算機(jī)編程思想與AOP編程思想研討

隨著經(jīng)濟(jì)社會(huì)的發(fā)展,信息技術(shù)也迎來(lái)了前所未有的快速發(fā)展,計(jì)算機(jī)編程的應(yīng)用范圍也愈加廣泛。而其中的編程思想,作為一個(gè)主要條件,可以使編程人員編出更好的程序,本文分析了目前編程界最為主流的兩種計(jì)算機(jī)編程思想,同時(shí)和將要興起的新技術(shù)aop,與OOP相比,其影響力巨大。因此,本文分析了其編程思想以及優(yōu)越性,還闡述了開(kāi)發(fā)步驟。

一、計(jì)算機(jī)編程思想研究

(一)結(jié)構(gòu)化程序設(shè)計(jì)

對(duì)于結(jié)構(gòu)化編程思想,其為面對(duì)繁雜任務(wù)的時(shí)候,防止混亂的一種編程思想,重視將程序結(jié)構(gòu)進(jìn)行規(guī)范化,要按照大腦極易理解的方式,合理組織繁雜問(wèn)題的求解過(guò)程。針對(duì)此編程思想,編程者應(yīng)該遵循結(jié)構(gòu)形式,進(jìn)行程序的設(shè)計(jì)及編寫(xiě),保證程序的正確結(jié)構(gòu),方便地進(jìn)行程序正確性的證明,該思想重點(diǎn)有以下幾點(diǎn)內(nèi)容:運(yùn)用由頂往下逐漸細(xì)化的方法。因?yàn)榻Y(jié)構(gòu)化編程運(yùn)用了功能抽象與模塊分解,其能合理地把繁雜程序任務(wù)分解為容易處理及控制的一些子任務(wù),隨后實(shí)施級(jí)別更細(xì)的任務(wù)分類(lèi),保證最終分出的子任務(wù)均是進(jìn)行獨(dú)立編程的子程序模塊。隨后根據(jù)某些調(diào)用以及結(jié)構(gòu)關(guān)系,將子程序模塊進(jìn)行合理組織,最終得出需要的程序。根據(jù)結(jié)構(gòu)化程序設(shè)計(jì)思想,得出的程序具有如下好處:很好的結(jié)構(gòu)、每個(gè)模塊之間有著簡(jiǎn)單清楚的關(guān)系、在各個(gè)模塊內(nèi),均有基本單元構(gòu)成。因此,得出的程序清楚易讀,良好的可理解性,正確性還易驗(yàn)證,維護(hù)、調(diào)試以及修改容易進(jìn)行。出現(xiàn)了結(jié)構(gòu)化編程思想,使之前軟件開(kāi)發(fā)存在的混亂狀況消除,編程人員編寫(xiě)的程序存在優(yōu)越的結(jié)構(gòu)。還因?yàn)檫\(yùn)用“自頂向下以及逐步細(xì)化”的方法,使人們智力合理地組織起來(lái),對(duì)軟件工程化研發(fā)是有益的。所以程序維護(hù)以及設(shè)計(jì)工作效率得以提升。若干基本結(jié)構(gòu)構(gòu)成程序,對(duì)于任意的大型程序,均包括三種基本結(jié)構(gòu),這些基本結(jié)構(gòu)使某個(gè)結(jié)構(gòu)化的程序得以順序地組成。主要有順序、選擇以及循環(huán)結(jié)構(gòu)這三種基本結(jié)構(gòu)。軟件界的具體實(shí)踐以及結(jié)構(gòu)化定理已證明,對(duì)于任意繁雜問(wèn)題的程序設(shè)計(jì),均可運(yùn)用順序結(jié)構(gòu)、選擇結(jié)構(gòu)以及循環(huán)結(jié)構(gòu)構(gòu)成,同時(shí)還具備下面一些特征:僅一個(gè)入口及出口;在結(jié)構(gòu)內(nèi),沒(méi)有死循環(huán),在程序內(nèi),以上三種基本結(jié)構(gòu)的順序執(zhí)行關(guān)系得以構(gòu)成。根據(jù)功能,能把大型程序劃分為若干基本功能模塊。一些子模塊一起構(gòu)成各個(gè)模塊,每個(gè)模塊在功能方面互相獨(dú)立,各個(gè)功能模塊均有進(jìn)行計(jì)算機(jī)控制以及數(shù)據(jù)處理的功能。盡量使模塊間的聯(lián)系簡(jiǎn)潔。最終將模塊根據(jù)某些層次關(guān)系,實(shí)施組織,繁雜程序的功能得以構(gòu)成。

(二)面向?qū)ο蟮某绦蛟O(shè)計(jì)

針對(duì)面向?qū)ο蟮某绦蛟O(shè)計(jì),其編程思想是運(yùn)用消息、對(duì)象、類(lèi)、繼承以及封裝等這些基本概念,實(shí)施程序設(shè)計(jì)。為使結(jié)構(gòu)化程序設(shè)計(jì)方法處理不了的代碼重用這些問(wèn)題得以解決,便給出了面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù),面向?qū)ο蟮某绦蛟O(shè)計(jì)編程思想包括如下特點(diǎn):面向?qū)ο蟮奶攸c(diǎn)之一就是封裝,其為類(lèi)與對(duì)象概念的重要特征。封裝給模塊帶來(lái)了比較良好的獨(dú)立性,程序修改與維護(hù)起來(lái)較為簡(jiǎn)單。抽象包括數(shù)據(jù)與過(guò)程抽象。繼承性使軟件的可重用性這個(gè)問(wèn)題得到良好處理。多態(tài)性使應(yīng)用程序函數(shù)的同名這類(lèi)問(wèn)題得到良好解決。面向?qū)ο蟮木幊趟枷氪嬖诤芏鄡?yōu)越性,其減少了程序開(kāi)發(fā)時(shí)間,提升了可靠性,開(kāi)發(fā)出來(lái)的程序更有強(qiáng)壯性,維護(hù)起來(lái)更容易。面向?qū)ο缶幊桃驗(yàn)榫哂休^高的可重用性,針對(duì)應(yīng)用程序,能積極運(yùn)用成熟的類(lèi)庫(kù),進(jìn)而使軟件開(kāi)發(fā)效率得以極大提高,所以,軟件界對(duì)這種面向?qū)ο蟮木幊趟枷脒M(jìn)行提倡運(yùn)用。日益增多的編程人員認(rèn)可并運(yùn)用了面向?qū)ο蟮木幊趟枷耄瑫r(shí)結(jié)構(gòu)化編程思想在進(jìn)行具有比較強(qiáng)功能性的軟件設(shè)計(jì)里,其指導(dǎo)作用仍然得以發(fā)揮。實(shí)際上,以上兩種編程思想沒(méi)有互相隔離,卻是相互支持、聯(lián)系的。在如今的軟件界,進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)的時(shí)候,具有公認(rèn)的編程公式:其一為對(duì)象=算法十?dāng)?shù)據(jù)結(jié)構(gòu),其二為程序=對(duì)象+對(duì)象,通過(guò)公式,能觀察出以上兩種編程思想的關(guān)系及區(qū)別。進(jìn)行面向?qū)ο蟮某绦蛟O(shè)計(jì)時(shí)候,仍然不能脫離完成算法的結(jié)構(gòu)化程序設(shè)計(jì),其中的結(jié)構(gòu)化程序設(shè)計(jì)還是編寫(xiě)對(duì)象進(jìn)行操作的重要所在。

二、AOP編程思想研究

(一)AOP將系統(tǒng)視為關(guān)注點(diǎn)

其實(shí)它為GOF(ObserverDesignPattern)設(shè)計(jì)模式的一種持續(xù),進(jìn)行了被調(diào)用者與調(diào)用者間解耦的強(qiáng)調(diào),給開(kāi)發(fā)人員帶來(lái)進(jìn)行橫切關(guān)注點(diǎn)-CrosscuttingConcern描述的合理機(jī)制,還可以把橫切關(guān)注點(diǎn)主動(dòng)地織入-weaving于面向?qū)ο蟮能浖到y(tǒng)內(nèi),確保橫切關(guān)注點(diǎn)模塊化得以實(shí)現(xiàn),進(jìn)行方面-Aspect代碼的合理劃分,橫切關(guān)注點(diǎn)顯得極易進(jìn)行處理。開(kāi)發(fā)人員進(jìn)行編譯的時(shí)候,插入、更改或者除去系統(tǒng)的方面,更可能重用系統(tǒng)的方面。由于開(kāi)發(fā)環(huán)境各不相同,關(guān)于概念也會(huì)有所不同。

(二)針對(duì)的問(wèn)題

AOP通常基于進(jìn)行業(yè)務(wù)處理中的切面實(shí)施提取,進(jìn)行處理的時(shí)候,其面對(duì)著其中的一個(gè)步驟或者哪個(gè)環(huán)節(jié),以確保整個(gè)邏輯中每個(gè)部分間低耦合性產(chǎn)生的隔離作用。針對(duì)動(dòng)詞方面,其重視的為橫向的,即為整個(gè)邏輯中一個(gè)方面或者某個(gè)片段,例如:權(quán)限以及日志管理,一般情況下,其進(jìn)行某些軟件系統(tǒng)自身東西的關(guān)注。并非面向?qū)ο筮M(jìn)行業(yè)務(wù)邏輯的關(guān)注。運(yùn)用有效松散方式,使系統(tǒng)間的耦合度這些問(wèn)題減少,方面即為它的模塊化單位。

(三)軟件性能

1.代碼擴(kuò)展性對(duì)于AOP,因?yàn)榉矫婺K并不了解橫切關(guān)注點(diǎn),因此極易進(jìn)行新方面的增加,并投入新功能。同時(shí),把新的模塊加到系統(tǒng)中的時(shí)候,已經(jīng)存在的方面會(huì)自動(dòng)橫切進(jìn)入,確保系統(tǒng)容易擴(kuò)展。

2.代碼冗余度運(yùn)用最小的耦合進(jìn)行各個(gè)關(guān)注點(diǎn)的有效處理,保證雖然為橫切關(guān)注點(diǎn),還是模塊化。如此實(shí)現(xiàn)的系統(tǒng),它的代碼冗余不大。進(jìn)行模塊化實(shí)現(xiàn),促使系統(tǒng)的維護(hù)與理解更為容易。

3.代碼重用性AOP將各個(gè)方面變成為獨(dú)立模塊,在模塊間,其為松散耦合。能使用其它獨(dú)立的日志寫(xiě)入器取代此時(shí)的,進(jìn)而將日志合理地寫(xiě)入數(shù)據(jù)庫(kù)中,保證與各種日志寫(xiě)入要求相符。正確實(shí)現(xiàn)松散耦合,經(jīng)常象征著代碼重用性更為良好。

(四)AOP的開(kāi)發(fā)程序

基于面向?qū)ο缶幊?OOP這種方法,AOP才得以改進(jìn),其為具有創(chuàng)新性的一種軟件開(kāi)發(fā)方法。一般具有如下的幾個(gè)開(kāi)發(fā)程序:

1.方面分解進(jìn)行分解,要得出橫切關(guān)注點(diǎn)。在這個(gè)步驟中,將系統(tǒng)級(jí)的橫切關(guān)注點(diǎn)與核心模塊級(jí)關(guān)注點(diǎn)進(jìn)行合理分離。

2.關(guān)注點(diǎn)實(shí)現(xiàn)進(jìn)行關(guān)注點(diǎn)的獨(dú)立實(shí)現(xiàn),將各個(gè)需求映射成為代碼,編譯器隨后將其翻譯成為一些可執(zhí)行代碼。能依靠另外的編程范型,把其當(dāng)作前提,確保基礎(chǔ)范型具有的優(yōu)勢(shì)還得以保留。比如:AOP能利用OOP當(dāng)作基礎(chǔ)范型,直接地將OOP擅長(zhǎng)處理普通關(guān)注點(diǎn)的優(yōu)勢(shì)引用來(lái)。利用如此的實(shí)現(xiàn),一般的獨(dú)立關(guān)注點(diǎn)能利用OOP技術(shù),其和過(guò)程型語(yǔ)言為很多OOP語(yǔ)言的基礎(chǔ)相似。關(guān)注點(diǎn)實(shí)現(xiàn)因?yàn)榘凑罩付ㄟ^(guò)程這一形式產(chǎn)生,能運(yùn)用C、C++或者Java這些傳統(tǒng)語(yǔ)言。

3.方面的重新組合在此步驟中,方面集成器進(jìn)行某個(gè)模塊單元的建立,也就是方面,進(jìn)行重組標(biāo)準(zhǔn)的指定,常把重組過(guò)程稱(chēng)為結(jié)合或者織入,運(yùn)用合適的信息進(jìn)行最終系統(tǒng)的組建。AOP實(shí)現(xiàn)能夠運(yùn)用許多方式進(jìn)行織入的實(shí)現(xiàn),進(jìn)行源碼至源碼的變換,進(jìn)行各方面源碼的預(yù)處理,織入過(guò)的源碼得以出現(xiàn),再將織入過(guò)的源碼傳到編譯器,最終可執(zhí)行代碼得以生成。運(yùn)用此方式,基于Java的一個(gè)AOP實(shí)現(xiàn),能將很多方面變換為Java源代碼,隨后通過(guò)Java編譯器,將其變換為字節(jié)碼,還能處于字節(jié)碼級(jí)別進(jìn)行織入的執(zhí)行,實(shí)際上,字節(jié)碼自身也為一種源碼。同時(shí),對(duì)于底層中的執(zhí)行系統(tǒng)Java虛擬機(jī),還能設(shè)計(jì)成為對(duì)AOP支持。基于Java的AOP實(shí)現(xiàn)要是運(yùn)用此方式,能在虛擬機(jī)中,把織入規(guī)則載入,隨后就之后載入的類(lèi)均利用此規(guī)則,實(shí)際上,其能進(jìn)行just-in-time方面織入的執(zhí)行。

三、總結(jié)

由于編程實(shí)踐的一直開(kāi)展,編程思想就會(huì)產(chǎn)生,產(chǎn)生的各種新編程思想,均對(duì)編程實(shí)踐進(jìn)行合理指導(dǎo),且均使計(jì)算機(jī)軟件開(kāi)發(fā)的質(zhì)量與速度得以提升。在當(dāng)今,AOP實(shí)現(xiàn)與語(yǔ)法尚未進(jìn)行完全規(guī)范,其為基于OOP以后的編程思想的一種創(chuàng)新,其能選用OOP當(dāng)作基礎(chǔ)范型,具有讓人無(wú)法抗拒的好處,業(yè)界會(huì)進(jìn)行認(rèn)可、接受,但是還要更深刻地探究其中存在的問(wèn)題。