從設計模式怎樣提公升設計

2021-08-09 15:35:40 字數 1477 閱讀 5797

設計模式是一種非常有用的設計參照,基本上每次去讀設計模式的內容總是會獲得新的體會。但是有沒有新的模式呢?我想,這個大概是有的,不過新的模式產生估計會非常困難。

在編碼一段時間之後,大概在一年或者兩年之後,我們一般都在想,可不可以把編碼做的更好一些,讓別人更加容易閱讀,更加好維護,更加好修改。懷著這種簡單的想法,我開始學習怎麼去改良**。設計模式引領我從純粹的實現到技術設計方面的思考,也同時非常感謝設計模式提供了很多的設計範例,讓我在設計方面有了最基礎的積累,讓我明白了,乙個好的設計並不是那麼容易的,同理,乙個好設計的實現是更加不容易的。好的設計就和好的演算法一樣,需要針對具體的實際情況,甚至是實際的情況稍有變動,設計的結構就要發生變化。

在工作中,第乙個層次的設計是比較淺顯易懂的,它是基於乙個業務功能,不考慮與其他部分的依賴關係。這個大部分都做過,例如我們要在某個業務模組內對一些業務功能做一些白名單驗證。具備這個層次需要思考的就是做乙個通用的類似filter一樣的驗證,驗證必須對不驗證的業務做一些預設設定,對進行驗證的業務設定具體的驗證內容。發生從不驗證的業務變更到需要驗證,只需要加入對應的資料載入和白名單內容配置。同理從驗證到不驗證也只需要刪除配置資料和對應的資料載入。這樣的功能性設計是設計模式所推崇的,基於純粹功能上的設計,對業務很少牽扯。做到這一步通常也是不容易的,要做到熟讀設計模式,然後忘記其具體內容,根據實際情況去組合用到的設計模式,甚至是直接拋棄掉設計模式,用最簡單的**去實現。

第二個層次的設計是某乙個系統級的設計,這種情況要更加的複雜,這個是專案級的設計。這些通常是基於某個業務系統,例如***車貸專案。這種設計要求人們具備更加高層次的目光,要明確外部的依賴關係,也要明確依賴關係中出現異常或者錯誤的具體提示資訊應該怎麼去設定。外部的依賴明確之後,本系統的設計應該怎麼去設計,怎麼去分析本系統的基礎功能和應用功能,基礎功能需要怎麼去設計才可以保證整個系統的業務訪問要求,對異常或者錯誤怎麼去設計等等,這個部分是重點,要求是通用功能要設計良好,同時有文件支援,還要有高易用性。在我的工作中,看到很多的底層設計,不過這個做起來真的非常難。難在需要根據個人的經驗去判斷,而且易用性的標準在不同的人眼裡是不一樣的,只能用一些具體的業務指標去確認。工期越是緊急的專案,對專案的基礎功能設計和實現要求越高,這個是專案工期的關鍵。

第三個層次是分布式系統的設計,這個是現在大多數基於網路的專案。例如現在銀行的系統都是分布式的系統,系統的網路組織結構是網狀的結構。核心系統在系統中佔據少數的幾個節點,其次是一些做資料整合和封裝的資料整合節點,這些節點的數目稍微多一些,最多的節點是外圍的渠道節點。渠道節點均算作銀行系統的外圍資料輸入輸出顯示節點。這種分布式系統的關鍵在於資料的一致性、傳輸限時性、資訊的安全性。每乙個出現在這種系統當中的問題都是需要連線多個節點進行排查和修復的。

我們在與這些內容打交道的時候,對個層面都要有足夠多的積累,即便這些積累是被別人使用過的,都要仔細的去分析和研究。重複不是問題,問題是只知道複製,不知道複製過來的符不符合我們的需要。雖然現在大家都在喊創新,不過全新的創新是罕見的,更多的是基於一些經典的設計或者案例進行調整,包括但是不限於**。

note:不要打著重用的名義去複製,要以改良的名義去重用。

設計模式怎樣解決設計問題

物件導向程式由物件組成,物件包括資料和對資料進行操作的過程,過程通常稱為方法或操作。物件在收到客戶的請求 或訊息 後,執行相應的操作。客戶請求是使物件執行操作的唯一方法,操作又是物件改變內部資料的唯一方法。由於這些限制,物件的內部狀態是被封裝的,它不能被直接訪問,它的表示對於物件外部是不可見的。物件...

《設計模式》學習筆記 設計模式怎樣解決設計問題

1.1 設計模式怎樣解決設計問題 1.1.1 尋找合適的物件 物件導向設計最困難的部分是將系統分解為物件的集合。設計的許多物件 於現實世界的分析模型,這裡和領域驅動設計有點關聯。分析所得到的類,很多事現實中並不存在的類。這是抽象的結果。設計中的抽象對於產生靈活的設計至關重要。就像我設計的乙個流程排程...

《設計模式》學習筆記 設計模式怎樣解決設計問題

1.1 設計模式怎樣解決設計問題 1.1.1 尋找合適的物件 物件導向設計最困難的部分是將系統分解為物件的集合。設計的許多物件 於現實世界的分析模型,這裡和領域驅動設計有點關聯。分析所得到的類,很多事現實中並不存在的類。這是抽象的結果。設計中的抽象對於產生靈活的設計至關重要。就像我設計的乙個流程排程...