既然,代碼設(shè)計(jì)如此重要,我們就不能忽視它。那么,如何設(shè)計(jì)代碼呢?面向?qū)ο缶幊碳夹g(shù)可以幫
助我們。在此,插一些題外話,很多程序員將面向?qū)ο缶幊蹋∣OP)技術(shù)和面向?qū)ο螅∣O)技術(shù)混淆。就
我自己的認(rèn)識來說,面向?qū)ο蠹夹g(shù)是一門博大精深的學(xué)問,它是一種方法論或者說是一種世界觀,而面
向?qū)ο缶幊碳夹g(shù)只是提供一種在編碼時(shí)運(yùn)用面向?qū)ο蟮囊环N方法。
以下是筆者看了一些相關(guān)的書籍和在日常實(shí)踐中得出的一些體會,希望和大家分享一下。
首先,讓界面代碼和功能代碼分離。需要牢記的一個(gè)原則,就是不要將復(fù)雜的功能邏輯寫在界面代
碼中。界面窗體的實(shí)現(xiàn)文件只用來存放界面代碼,而將復(fù)雜的功能代碼獨(dú)立出來。舉個(gè)簡單的例子,
假設(shè)要從某處獲得一個(gè)字符串列表,然后顯示于 TListBox 中,這樣的代碼就是值得尊敬的:
ObjectXXX := TObjectXXX.Create;
ListBox1.Items := ObjectXXX.GetStringList;
ObjectXXX.Free;
這樣就把獲得該字符串列表的復(fù)雜邏輯封裝于 TObjectXXX 類的實(shí)現(xiàn)代碼中,并且可以將這個(gè)類的定義
及實(shí)現(xiàn)獨(dú)立的放在一個(gè) .pas 文件中,以便于維護(hù)。將界面代碼和功能代碼分離還有另外一個(gè)好處,
一個(gè)功能的實(shí)現(xiàn)代碼可能會被多個(gè)界面模塊調(diào)用,如果將功能實(shí)現(xiàn)代碼在需要的地方就復(fù)制一份,那么
你就會有多個(gè)相同的模塊需要維護(hù),如果需要修改的話,呵呵,幾乎不可能保證你不會出錯(cuò)。
其次,讓每個(gè)模塊的邏輯盡可能簡單。經(jīng)驗(yàn)告訴我們,對于過于復(fù)雜的邏輯,會給人的理解帶來困
難。所以,盡可能的讓每個(gè)模塊的代碼簡單,一般不要超過 25行代碼。當(dāng)你發(fā)現(xiàn)你寫的邏輯正在趨于
復(fù)雜,那么這個(gè)時(shí)候是你尋找對象的時(shí)機(jī)了,看看能不能將其中的一些邏輯獨(dú)立出來。
最后,就是要注意變量的命名。經(jīng)常查看 VCL 源代碼,你會發(fā)現(xiàn),VCL類中私有成員變量都以“F”
打頭,類名都以“T”打頭等等這樣的規(guī)則。這樣有什么好處?當(dāng)別人查看這樣的代碼時(shí),一旦看到“F”
開頭的,就立刻可以知道它是該類的私有成員,便于代碼的維護(hù)。
新聞熱點(diǎn)
疑難解答
圖片精選