1, 基本信息
眾所周知,C語言是結(jié)構(gòu)化和模塊化,面向過程的編程語言,在這里用戶創(chuàng)建過程或函數(shù)來執(zhí)行他們的任務(wù)。面向過程的語言是很容易學(xué),因為它遵循的算法來執(zhí)行你的語句。要使用面向過程的語言開發(fā)程序,你需要畫/編寫算法,然后開始轉(zhuǎn)換成程序或功能。
因為C語言的面向過程的語言特性。在處理較小規(guī)模的程序時,程序員用C語言還比較得心應(yīng)手。但是當(dāng)問題比較復(fù)雜、程序的規(guī)模比較大時,結(jié)構(gòu)化程序設(shè)計方法就顯出它的不足。C程序的設(shè)計者必須細(xì)致地設(shè)計程序的每一個細(xì)節(jié),準(zhǔn)確地考慮到程序運行時每一時刻發(fā)生的事情,例如各個變量的值是如何變化的,什么時候應(yīng)該進(jìn)行哪些輸入,在屏幕上應(yīng)該輸出什么等。這對程序員的要求是比較高的,如果面對的是一個復(fù)雜問題,程序員往往感到力不從心。
采用C語言進(jìn)行程序設(shè)計開發(fā),一般是嵌入式的設(shè)備,比如:冰箱系統(tǒng),空調(diào)系統(tǒng),汽車電子等等。在這些需求場景下,往往硬件資源比較有限,內(nèi)存資源有限,所以采用C++語言進(jìn)行設(shè)計,會導(dǎo)致程序占用內(nèi)存資源比較大。
所以為了彌補(bǔ)c語言的面向?qū)ο髮傩缘娜笔В瑫r結(jié)合C程序資源占用小的優(yōu)點。本文設(shè)計了一種基于面向?qū)ο笏枷氲腃程序設(shè)計方法及系統(tǒng)。
2,術(shù)語解釋:
linux:Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。
3,關(guān)鍵詞
面向?qū)ο螅绦蛟O(shè)計
4,所屬技術(shù)領(lǐng)域
本文涉及一種c語言軟件設(shè)計的一套模板方法和系統(tǒng),該方法是一種基于linux嵌入式操作系統(tǒng),支持功能可裁剪,可配置,動態(tài)的修改配置.從而提高系統(tǒng)的開發(fā)效率,提高系統(tǒng)維護(hù)的便利性,系統(tǒng)運行的穩(wěn)定性.
5,詳細(xì)技術(shù)方案描述
為了彌補(bǔ)了結(jié)構(gòu)化過程設(shè)計的不足,面向?qū)ο筮@種當(dāng)今流行的一種程序設(shè)計理念和設(shè)計規(guī)范,就應(yīng)運而生,理念是一切皆為對象,以人的思維模式去解決問題。例如,Python、C++、Objective-C、Smalltalk、Delphi、JAVA、Swift、C#、Perl、Ruby等,其中C++嵌入式設(shè)備程序設(shè)計中,應(yīng)用比較廣泛。C++可以看成C的超集,幾乎保留了C的所有特性,可以直接操作硬件寄存器等等硬件設(shè)備。同時又支持面向?qū)ο蠛头盒途幊蹋@就導(dǎo)致了C++超級復(fù)雜。C++復(fù)雜性,對于程序設(shè)計語言學(xué)習(xí)者簡直就是噩夢,在學(xué)習(xí)的過程中,迷失在C++的語法“大海”中。
但是在實際生產(chǎn)活動中,需要對對象進(jìn)行各種各樣的組合,并且對象本身需要根據(jù)產(chǎn)品的不同,會有比較大的不同。比如:一家汽車生產(chǎn)廠商,需要生產(chǎn)不同類型的汽車,發(fā)動機(jī)可能來自奔馳、寶馬、考斯沃斯等等。輪胎可能來自米其林、固特異、倍耐力等等。如下圖所示。

所以考慮現(xiàn)實世界問題的復(fù)雜性,生產(chǎn)活動的要求,需要加入配置的功能,可以對對象進(jìn)行配置。
本文的目的在于提供一種C語言程序設(shè)計模板,基于面向?qū)ο蟮姆庋b思想,將功能模塊進(jìn)行抽象、封裝,并且集成了配置功能,實現(xiàn)功能的可裁剪和可配置。使程序員在設(shè)計復(fù)雜程序的時候,能夠快速、高效地實現(xiàn)一套兼容性好,穩(wěn)定高的程序。此程序設(shè)計模板只包含面向?qū)ο笾蟹庋b,繼承,多態(tài)中的封裝,暫不具有繼承和多態(tài)的功能。
此設(shè)計模板包括一個配置模板,對象模板,初始化模板。
對象模板如下:

配置模板如下:

對配置模板中的是否支持是這個模板中一定要支持的,others可以根據(jù)需要增加自己需要的配置
初始化模板如下:

從圖中我們可以發(fā)現(xiàn),object_create()模板中會從配置模板形成的配置中讀出是否支持該obj,如果支持,獲取其他的配置,根據(jù)不同的配置,賦值不同的obj回調(diào)接口,然后創(chuàng)建對象模板,形成真正的object.
其他的接口可以用這個object,調(diào)用里面的對象接口,實現(xiàn)面向?qū)ο蟮木幊谭绞健?/p>
怎樣使用對象呢?請看下圖

我們可以看到,根據(jù)不同的配置,用戶可以吃到不同的米飯,如果是大米飯配置,用戶吃飯就可以吃到了大米飯。
6,總結(jié)
利用這種封裝+加配置的方式,可以實現(xiàn)快速的開發(fā)工作,將具體的內(nèi)容進(jìn)行封裝,提高團(tuán)隊的開發(fā)效率,開發(fā)人員不需要關(guān)注其他人員的實現(xiàn)過程,只需要調(diào)用方法即可。