我是從
LabVIEW的中文版幫助文檔中接觸“
程序設計模式”一詞的,這個相對學術化的詞語是對一系列用于LabVIEW程序設計結構的歸納和總結。在建造房子時,需要針對房子的用途設計整個房屋的架構,確保房子在這個架構上的堅固性和可建造性。寫程序時同樣如此,不同的應用需要使用不同的程序設計結構。例如我們在LabVIEW中構建一個用戶界面型程序時,往往首先在背面板中加入一個大的while循環(huán)以使程序持續(xù)運行。如果需要響應用戶界面事件則還需要加入一個Event事件結構。那么我們是否曾經考慮過以下的這些問題:應用中是否存在并行響應的情況?如在持續(xù)的數據采集過程中,是否需要同時響應單擊菜單的事件?底層獲取的數據如何與上層的數據顯示部分進行數據交互?上層的界面如何受底層程序的控制?同一個循環(huán)中采用哪種方式進行數據交換?是局域變量、
全局變量、共享變量還是
移位寄存器?程序是否具有可擴展性?如果程序運行過程中,發(fā)生系統(tǒng)錯誤或者硬件通訊錯誤,是否會停止運行?待錯誤排除后是否會繼續(xù)運行?如何組織程序中的核心數據結構?是否需要采用面向對象程序設計?如何記錄測試數據并生成報表?如何保存用戶配置參數?如何處理程序運行中的斷電情況?重新啟動時的繼續(xù)運行?數據的最低丟失?如何實現運行過程的采樣觸發(fā)和多點采樣的同步?當然,也許只是使用LabVIEW臨時地調試或開發(fā)某個小的應用,無需考慮上述的問題。但是,如果使用LabVIEW開發(fā)一個典型應用的程序卻無法回避這些問題。因此,有必要對各種程序開發(fā)的應用進行歸納和總結,提取它們對應的LabVIEW程序結構中的共性。此外,針對這些共性研究哪種結構更加適合于應用。這些結論綜合起來就形成了程序設計的模式。對于初學者而言,理解和掌握程序設計模式往往能起到事半功倍的效果;而對高級用戶而言,歸納各種程序設計模式又能夠不斷完善程序中遇到的問題,并衍生一套符合特定應用的特有的程序設計模式。
關鍵詞:
LabVIEW程序設計模