在Windows平臺(tái)做開(kāi)發(fā)肯定會(huì)接觸到UI程序的編寫(xiě),以MFC的UI開(kāi)發(fā)為例,可以開(kāi)發(fā)單文檔,多文檔,對(duì)話框等形式的應(yīng)用。寫(xiě)一個(gè)UI程序容易,寫(xiě)好卻不是一件簡(jiǎn)單的事情。在整個(gè)代碼結(jié)構(gòu)的清晰性與可維護(hù)性方面需要多加注意。寫(xiě)好UI程序需求注意以下幾點(diǎn):
1、圍繞數(shù)據(jù)編程與不是圍繞UI編程
當(dāng)我們拿到需求最先接觸到的就是UI的設(shè)計(jì),也許是美工畫(huà)的,也許是設(shè)計(jì)草圖。工程師在具體設(shè)計(jì)的時(shí)候容易受UI的影響,或者干脆從UI開(kāi)始編程。
這是一個(gè)錯(cuò)誤的編程習(xí)慣,無(wú)論UI如何展現(xiàn)與交互,最終都應(yīng)該圍繞數(shù)據(jù)編程。拿到需求后,應(yīng)該先思考和推敲數(shù)據(jù)的設(shè)計(jì)與流轉(zhuǎn),UI不過(guò)就是數(shù)據(jù)的一種展現(xiàn)形式而已。
2、做好UI與邏輯的解耦
UI的編程會(huì)涉及到許多控件的操作,消息的處理,不知不覺(jué),一個(gè)UI類(lèi)的代碼會(huì)越寫(xiě)越大,以至于一段時(shí)間以后,瀏覽和梳理都會(huì)變得不太方便。
在UI類(lèi)里,除了與UI本身的操作有關(guān)的代碼以外,任何邏輯代碼都應(yīng)該與此解耦,并根據(jù)具體情況進(jìn)行封裝調(diào)用。如果一個(gè)控件關(guān)聯(lián)了太多數(shù)據(jù)操作,應(yīng)該把這些操作封裝到控件的繼承類(lèi)中,把一類(lèi)代碼進(jìn)行集中管理和維護(hù)。
上述問(wèn)題,在程序?qū)懽鞯某跗谶€不太明顯,隨著代碼逐漸膨脹,會(huì)越會(huì)越讓人難以忍受。
3、數(shù)據(jù)單向依賴(lài),單向更新
UI圍繞的數(shù)據(jù)進(jìn)行展現(xiàn)與更新,在這個(gè)過(guò)程中,所以對(duì)數(shù)據(jù)的操作應(yīng)該進(jìn)行封裝,而不是散落在UI程序在各個(gè)角落,數(shù)據(jù)的更新、獲取和UI傳遞消息時(shí),應(yīng)該單向操作,如果出現(xiàn)循環(huán)處理的情況,在以后維護(hù)調(diào)試的BUG的過(guò)程中會(huì)變得比較困難,導(dǎo)致維護(hù)效率下降。
本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://www.shnenglu.com/humanchao
posted on 2012-09-05 10:45
王海光 閱讀(528)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
其他