標籤:
前言:
不要基於代碼編程,要基於圖形進行軟體設計。
---米老師
As mentionedabove,是上上個周四晚上鎖門時候在小會議室聽到米老師給九期師哥師姐講系統時候的一句話,讓我很是觸動。Why?
有個問題不知道大家思考過沒有,比如在《設計模式》學習過程中,我們照著代碼“照葫蘆畫瓢”似的把代碼敲了出來,貌似自己真的懂了,但是真正讓自己去實踐的時候,我們能做出來嗎?或者在敲機房時候,有些痛點我們是模仿“前人”部落格做出來的,程式能跑起來了,代碼自己也理解了,就覺得success了,但是這些東西真的變成了你的了嗎?
針對組合查詢,設計之前我有自己的思路,通過設定全域變數來傳遞sql語句,也就是說sql語句是在U層通過選擇下拉式功能表之後就“拼接”好了,通過傳到全域變數,用到D層的sqlhelper函數中去,之後按照老樣子返回DataTable表顯示在DataGridView控制項上,當照著自己的思路做的時候,發現1、U層邏輯判斷很大,而且再加上轉義函數等,絕大多數的代碼都在U層,B、D、就是走了個形式而已,這樣還不如直接在U層寫ConnStr串連資料庫…… 2、別人用到的模板方法、預存程序我不知道怎麼去用,雖然講設計模式看了兩三遍,預存程序的資料也子在網上有搜……
怎麼辦?查資料(部落格),我的組合查詢參考了徐鳳竹的部落格,邵鴻鑫師哥的部落格,劉曉春師哥的部落格……,原理基本一致,通過“具體查詢類繼承父類模板,父類對外觀類、B層對象的執行個體化,走七層的套路,調用D層中的Query方法,唯一不同的地方在於sql="COMBINEQUERY"”(將sql語句變為預存程序),其他的都是七層的老套路,這樣就把這個過程中的兩個兩點“模板方法”和“預存程序”很好的應用到了系統之中。
本篇部落格,將不具體展示代碼,大家的這塊代碼都很相似,我更想談談通過組合查詢怎樣將別人的代碼轉變成自己的東西,怎樣“照葫蘆畫瓢”,一個很好的辦法就像米老師所言“基於圖形編程,有了一幅圖哢哢哢代碼閉著眼就出來了”。
As shown in theabove figure,大架構是7層思想,按照老套路,建立介面、D層、工廠、BLL層、外觀、U層,之後重點在U層如何去複用父表單,如何在D層sql語句中調用預存程序,以及在資料庫中將這個可以靈活被使用的預存程序寫出來,這才是最重要的,我覺得編程思想、思路要比實現代碼更重要,借鑒別人的東西,要將來龍去脈理清之後整理為自己的一幅圖,這樣在敲代碼、敲類似的代碼,乃至於在面試的時候,你的腦海中有了這幅圖,面試官問什麼,你都可以直接去圖中去找到需要的資訊,而不是像照葫蘆畫瓢那樣重新理一遍思路。
寫著寫著發現沒有技術方面的東西,但我覺得,這些更是如何發揮、提高技術的一個概述,組合查詢,沒什麼難的。
機房重構---由組合查詢引發的思考