很多人在學(xué)完了python的class機(jī)制之后,遇到一個(gè)生產(chǎn)中的問題,還是會(huì)懵逼,這其實(shí)太正常了,因?yàn)槿魏纬绦虻拈_發(fā)都是先設(shè)計(jì)后編程,python的class機(jī)制只不過是一種編程方式,如果你硬要拿著class去和你的問題死磕,變得更加懵逼都是分分鐘的事,在以前,軟件的開發(fā)相對(duì)簡(jiǎn)單,從任務(wù)的分析到編寫程序,再到程序的調(diào)試,可以由一個(gè)人或一個(gè)小組去完成。但是隨著軟件規(guī)模的迅速增大,軟件任意面臨的問題十分復(fù)雜,需要考慮的因素太多,在一個(gè)軟件中所產(chǎn)生的錯(cuò)誤和隱藏的錯(cuò)誤、未知的錯(cuò)誤可能達(dá)到驚人的程度,這也不是在設(shè)計(jì)階段就完全解決的。
所以軟件的開發(fā)其實(shí)一整套規(guī)范,我們所學(xué)的只是其中的一小部分,一個(gè)完整的開發(fā)過程,需要明確每個(gè)階段的任務(wù),在保證一個(gè)階段正確的前提下再進(jìn)行下一個(gè)階段的工作,稱之為軟件工程
面向?qū)ο蟮能浖こ贪ㄏ旅鎺讉€(gè)部:
1.面向?qū)ο蠓治?objectorientedanalysis,OOA)
軟件工程中的系統(tǒng)分析階段,要求分析員和用戶結(jié)合在一起,對(duì)用戶的需求做出精確的分析和明確的表述,從大的方面解析軟件系統(tǒng)應(yīng)該做什么,而不是怎么去做。面向?qū)ο蟮姆治鲆凑彰嫦驅(qū)ο蟮母拍詈头椒?,在?duì)任務(wù)的分析中,從客觀存在的事物和事物之間的關(guān)系,貴南出有關(guān)的對(duì)象(對(duì)象的‘特征’和‘技能’)以及對(duì)象之間的聯(lián)系,并將具有相同屬性和行為的對(duì)象用一個(gè)類class來標(biāo)識(shí)。
建立一個(gè)能反映這是工作情況的需求模型,此時(shí)的模型是粗略的。
2面向?qū)ο笤O(shè)計(jì)(objectorienteddesign,OOD)
根據(jù)面向?qū)ο蠓治鲭A段形成的需求模型,對(duì)每一部分分別進(jìn)行具體的設(shè)計(jì)。
首先是類的設(shè)計(jì),類的設(shè)計(jì)可能包含多個(gè)層次(利用繼承與派生機(jī)制)。然后以這些類為基礎(chǔ)提出程序設(shè)計(jì)的思路和方法,包括對(duì)算法的設(shè)計(jì)。
在設(shè)計(jì)階段并不牽涉任何一門具體的計(jì)算機(jī)語(yǔ)言,而是用一種更通用的描述工具(如偽代碼或流程圖)來描述
3面向?qū)ο缶幊?objectorientedprogramming,OOP)
根據(jù)面向?qū)ο笤O(shè)計(jì)的結(jié)果,選擇一種計(jì)算機(jī)語(yǔ)言把它寫成程序,可以是python
4面向?qū)ο鬁y(cè)試(objectorientedtest,OOT)
在寫好程序后交給用戶使用前,必須對(duì)程序進(jìn)行嚴(yán)格的測(cè)試,測(cè)試的目的是發(fā)現(xiàn)程序中的錯(cuò)誤并修正它。
面向?qū)Φ臏y(cè)試是用面向?qū)ο蟮姆椒ㄟM(jìn)行測(cè)試,以類作為測(cè)試的基本單元。
5面向?qū)ο缶S護(hù)(objectoriendtedsoftmaintenance,OOSM)
正如對(duì)任何產(chǎn)品都需要進(jìn)行售后服務(wù)和維護(hù)一樣,軟件在使用時(shí)也會(huì)出現(xiàn)一些問題,或者軟件商想改進(jìn)軟件的性能,這就需要修改程序。
由于使用了面向?qū)ο蟮姆椒ㄩ_發(fā)程序,使用程序的維護(hù)比較容易。
因?yàn)閷?duì)象的封裝性,修改一個(gè)對(duì)象對(duì)其他的對(duì)象影響很小,利用面向?qū)ο蟮姆椒ňS護(hù)程序,大大提高了軟件維護(hù)的效率,可擴(kuò)展性高。
在面向?qū)ο蠓椒ㄖ校钤绨l(fā)展的肯定是面向?qū)ο缶幊?OOP),那時(shí)OOA和OOD都還沒有發(fā)展起來,因此程序設(shè)計(jì)者為了寫出面向?qū)ο蟮某绦?,還必須深入到分析和設(shè)計(jì)領(lǐng)域,尤其是設(shè)計(jì)領(lǐng)域,那時(shí)的OOP實(shí)際上包含了現(xiàn)在的OOD和OOP兩個(gè)階段,這對(duì)程序設(shè)計(jì)者要求比較高,許多人感到很難掌握。
現(xiàn)在設(shè)計(jì)一個(gè)大的軟件,是嚴(yán)格按照面向?qū)ο筌浖こ痰?個(gè)階段進(jìn)行的,這個(gè)5個(gè)階段的工作不是由一個(gè)人從頭到尾完成的,而是由不同的人分別完成,這樣OOP階段的任務(wù)就比較簡(jiǎn)單了。程序編寫者只需要根據(jù)OOd提出的思路,用面向?qū)ο笳Z(yǔ)言編寫出程序既可。
以上內(nèi)容為大家介紹了Python面向?qū)ο蟮能浖_發(fā),希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。