前言算法
目前以LabVIEW爲主要開發工具,熟悉常規開發框架(隊列+狀態機),我的用得比較多也感受比較好用和強大的(JKI,AMC),也用它們開發過一些測試平臺,但感受到了一個瓶頸期,想尋求突破,提高LabVIEW的編程水平和思想,因此本身開始學習LVOOP,寫此博文,一爲本身知識的總結和思考消化,二是但願能爲有一樣困惑的小夥伴帶來一點啓發。編程
OOP設計模式學習書籍選用了程傑的《大話設計模式》,我的感受還不錯,挺適合我這種新手入門的,因此書中的內容在本身理解後會用Labview實現並分享出來,若有錯誤之處,還請大神指點一二。設計模式
簡單工廠模式框架
所謂工廠模式,個人理解是,只需向工廠提供一個你想要的「產品標識」,工廠就能夠生產出你想要的產品。也就是說,咱們將容易變化的地方放到客戶端,在客戶端選擇實例化誰,這個過程我認爲就是工廠生產的過程。用計算器的例子來講,咱們能夠將不一樣的運算方法(+, -, *, /等)當作是產品,當咱們在界面中觸發這幾個事件時,至關因而向工廠中傳入了產品標識,從而能夠獲得咱們想要的產品。工具
例如,當前需求實現加、減、乘、除四個運算的功能,來看LabVIEW的實現過程:學習
此項目仔細思考後,能夠發現需求可變的地方極可能是須要我不斷的去增長新的運算方法(好比今天添加一個平方運算,明天再添加一個開方運算,等等),那就能夠考慮對變化的地方進行抽象,咱們建立一個抽象的運算類,而後按照需求去新增具體的運算類去繼承抽象的父類,以下圖所示:開發工具
運算的過程都是同樣的,提供兩個參數,而後計算獲得結果,只是算法不同而已。那即可以在抽象類中定義兩個私有數據(num1,num2),建立訪問器對其進行讀寫操做,以下圖所示。測試
接着再建立一個動態抽象方法(Get Result),獲取計算的結果,抽象方法在具體的子類中實現。spa
而後根據需求建立四個具體的運算類,並從新Get Result方法,對應(+,-,*,/)的具體實現,以下圖所示。設計
最後在建立一個工廠類,經過工廠即可按客戶端需求實例指定對象,完成相應的運算操做。
當需求發送變化(如新增一個開方運算),只需新增一個開方運算類,在工廠類的product方法中添加新的「產品生產過程」,而後再添加新的事件觸發便可,以下圖所示:
從這個簡單的例子即可感覺到OOP的「魔力」,方便擴展,維護等。源碼參考:連接:https://pan.baidu.com/s/13bY5QVC5ajJtllpmj7cNLA 密碼:1l0o