在業務中經常把型別給抽象出來作為乙個表,這樣的表有乙個特點就是需要經常查到,但是基本不用修改到。而這種做法很致命的一點就是作為寫業務的程式設計師必須了解資料庫的某條記錄的編號,然後寫進去**裡面,這是完全違反開閉原則的,一旦有修改需要找出所有的**並修改。
像下面的**:
public static string getfilepath(string filetype)
switch (type)
return filepath;
}
真正的做法應該是將這些脫離於資料庫,儲存在檔案。好處有
1. 查詢效率提高n 多倍;
2. 一旦修改了記錄不用修改源**,而源**要查詢檔案,完全符合開閉 原則;
3. 讓程式設計師更容易理清楚關係,用xml 或者其他檔案在表示樹等結構上面明顯有優勢;
4. 修改記錄的成本變得很低,甚至都不用開發乙個軟體來修改了,只要直接編輯檔案就是了(當然不贊成這樣,不利於許可權管理等)
當然,這樣就還有乙個問題,程式設計師需要關注什麼。這裡建議用工廠模式。
首先建立乙個抽象工廠封裝,將幾種產品的呼叫做個封裝,對外提供乙個方法,這個方法只需要乙個「型別引數」。就按照上面的例子,可以對外提供images ,video ,audio 等幾個型別引數,所有程式設計師程式設計的時候就按照這個分類寫**,呼叫封裝類以後在進行switch 條件分支處理。
具體**寫多了煩,不寫了。
mysql處理查詢模型 Mysql的查詢模型
mysql查詢模型 把列看成變數,把where後面看成php中的if exp 表示式 哪一行能讓exp為真,哪一行就能取出來 還有列既然可以看作是變數,變數之間可以進行與運算。下面有一道題目可以幫助我們更好的理解列是變數這一問題 把num值處於 20,29 之間,改為20 num值處於 30,39 ...
iframe無ID的處理
1.處理不巢狀的iframe 有時候,iframe開發寫的時候,沒有寫id,導致在driver.switch to frame id 的時候,不知道如何定位才好,當iframe無id的時候,我們可以依據索引來處理,切記索引是從0開始的,檢視iframe在頁面中的位置,確定索引的位置,實現方式為dri...
XSLT的處理模型 1
helloworld程式 1.helloworld.xml檔案 zhangqs008清山 注意 如果有中文編碼,請指定為encoding gb2312 方式。2.被關聯的樣式表 helloworld.sxlt this is my first xslt programm hello world,th...