從寫死到寫活

2022-01-29 04:45:44 字數 1362 閱讀 8158

本來菜鳥一枚,也是剛離開母校的學生,最近在接觸依賴注入框架,看到它的好處之後,突然回憶起自己寫**的道路,雖然還走得不長,確實有自己的**從寫死到寫活的體會,願能幫助到有需要的人,也願能博大牛一笑。

拿最熟悉的乙個例子來說明吧,資料庫連線訪問。下面是執行sql資料庫操作的**:

public

void insert(string

sqlstr)

現在客戶的要求變了,「我要換oracle資料庫,oracle資料庫比較高階!」,客戶說道。那麼以前的我會怎麼做呢?答案是直接在函式(不止是這個函式,所有跟訪問資料庫的函式)上修改咯,看到sql就換成oracle咯

public

void insert(string

sqlstr)

加班改好之後,客戶又說「oracle用得不習慣,還是mssql好~」.......哭瞎,這下又要乖乖把全部**修回去。

顯而易見這種寫法的缺點是有多嚴重,而且物件導向原則是少改**啊,下面來看看改良版的。

物件導向有個很重要的特性就是多型,乙個基類的引用變數,可以指向多個不同的派生類物件,就叫多型。

有什麼用呢?看看下面的**。

public

void add(string

sqlstr)

因為sqlconnection實現了idbconnection介面,而sqlcommand實現了idbcommand介面,所以可以用這些介面來指向具體物件。

客戶這時候用嚷嚷:「某某公司都用了oracle,我們怎麼能輸,我們還是得用!!」,這時候改**就只需要把具體物件改成關於oracle的資料庫操作物件即可,是不是比起上面那個工作量少了一半?好像還不止......

依賴注入是ioc模式的一種實現,大概意思是不要過度的高層**不要過度依賴於低層**,讓低層**實現介面,而高層**直接依賴於介面即可,當業務再發生變化時,只需要修改介面與低層**的對映就行。

idbconnection con;

public

void add(string

sqlstr)

然後要在乙個檔案上註冊介面與實現類的關係

builder.register().as();

註冊之後相當於讓idbconnection介面指向了oracleconnection的例項物件

這樣執行時就會執行對oracle資料庫的操作。

這時候客戶又說道:「什麼?oracle資料庫費用很高?那誰用啊,改回mssql吧~」這時候只需要改註冊的關係即可。

本隨筆記錄了我的一些認識,關於依賴注入框架很多東西公司都是封裝好的,還要繼續深入的學習,最後還是求指教~~

disable readonly 用於寫死測試思路

將頁面某一模組內容設為不可編輯狀態,也就是 寫死 可以使用disabled disabled readonly只針對input和textarea有效,而disabled對於所有的表單元素都有效 當使用者正式提交了表單後需要等待管理員的資訊驗證,這就不允許使用者再更改表單中的資料,而是只能夠檢視,由於...

寫程式是個良心活

對於工作一段時間的人來說,實現普通功能 90 以上 太容易了,google一下一大把。如果你滿足於此的話,會感覺工作是枯燥的 無趣的。對於程式設計師來說,想混日子太容易了,同樣開著ide,有良心 對工作抱著負責的態度,在工作中學習 實踐,願意寫更優雅的 的人 比 沒良心 的人 把工作只作為餬口的手段...

往死裡寫 mainloop函式

void mainloop void else if npdoutputsize 0 if al event enabled disable esc int endif if al event enabled enable esc int endif if ecat timer int 這裡沒有中斷...