工作也從開始c語言,轉向現在的c++,表面上看得出,但實際中卻沒有把這種轉變深入到思想中,究其原因還是對物件導向的軟體設計不了解,有必要好好學習一下設計模式這個東東。本文就是設計模式學習第一篇……
1物件導向軟體設計中的問題
2設計模式
設計模式:某種問題通用性的解決方案,可重複的模式。就像是一種模具,使用這種模具可以批量性的生產某種東西一般。這裡的設計模式是乙個非常抽象性的概念,他是在某種場景中,針對某類問題,提出解決方案,以達到某種效果。「每乙個模式描述了乙個不斷重**生的問題以及該問題的解決方案的核心。
3 mvc模式
mvc(模型/檢視/控制器)用來構建完整的使用者介面(顯示和響應)。基本上所有的框架都是基於mvc模式或者其變種的模式開發的。具體的問題就是需要使用到具體的模式或者多種模式來解決。
其互動方式有:(當然還有其他方式)
mvc模式可以參考:
其中講解的非常棒!
4設計模式解決問題
(1)合理的對現象進行抽象
資料,資料處理,操作,顯示,互動……
(2)決定物件的粒度
如何設計乙個物件,乙個多大的物件,各種方法屬性的許可權如何等。如:使用乙個屬性類物件list直接管理一系列物件,還是交給乙個屬性類物件來管理。
(3)指定物件的介面
屬性名,操作名,引數,返回值,虛函式,過載……
(4)描述物件的實現
uml圖繪製整個系統的類結構圖
(5)運用復用機制
合適的繼承,組合的運用,委託(多型性),模板
(6)執行時刻和編譯時刻結構
編譯時刻結構:**結構決定
執行時刻結構:通訊物件網路決定
(7)設計應支援的變化
復用性,,健壯性,可擴充套件性
物件建立,演算法依賴,驅動……
物件導向軟體設計 設計模式學習
工作也從開始c語言,轉向現在的c 表面上看得出,但實際中卻沒有把這種轉變深入到思想中,究其原因還是對物件導向的軟體設計不了解,有必要好好學習一下設計模式這個東東。本文就是設計模式學習第一篇 1物件導向軟體設計中的問題 2設計模式 設計模式 某種問題通用性的解決方案,可重複的模式。就像是一種模具,使用...
如何物件導向軟體設計?
軟體設計也分大小,每個軟體開發工程師都有自己的設計,下面談談自己的見解 軟體開發的相關技術更新快,之前掌握的框架如前端的jquery和與jquery相關的框架,後端springmvc,structs,hiberneate等技術都逐漸被淘汰,有些技術公升級成新的技術仍在使用。技術是第一生產率。技術更新...
物件導向軟體設計原則(二) 軟體設計的腐化
我們如何知道軟體設計的優劣呢?以下是一些拙劣設計的症狀,當軟體出現下面任何一種氣味時,就表明軟體正在腐化。僵化性 僵化是指難以對軟體進行改動,即使是簡單的改動。如果單一的改動會導致有依賴關係的模組中的連鎖改動,那麼設計就是僵化的。必須要改動的模組越多,設計就越僵化。大部分開發人員都遇到這樣的情況 他...