C 軟體設計思想

2021-08-06 04:49:30 字數 923 閱讀 2421

一,如何設計出優秀的軟體系統?

優秀的軟體系統,必須是易擴充套件、易維護、高可復用性的。要做出這樣的系統,就要採用物件導向的設計思想。如果我們的設計僅僅符合物件導向的三大特徵,這並不是很好的物件導向的軟體設計。真正的物件導向的軟體設計是要遵循物件導向的五大原則,五大原則的核心原則是開放封閉原則,即我們設計出來的軟體系統對擴充套件是開放的、對修改是封閉的。這就要求我們要面向介面程式設計,不要面向實現程式設計。因為介面相對來說是固定的,即對修改是封閉的。採用物件導向的繼承與多型機制,可以很方便的從介面派生出新的類,通過覆蓋介面中的方法,可以實現不同的行為,即可以很方便的對系統進行擴充套件。物件導向的五大原則,只是提出的一些指導方針,告訴我們怎麼樣做是對的,怎麼樣做是錯的,但是並沒有具體的告訴我們如何去做。因此,在實際的開發過程中,我們要使用設計模式(在程式設計實踐中總結出來的可重用的解決方案),根據具體的問題,使用相應的設計模式,去解決這個問題。因此,我們要把物件導向的五大原則與設計模式結合起來,才能設計出優秀的軟體系統。

二,如何寫出高效的**?

1,延後變數的定義時間,在真正使用到的時間再定義。

2,使用位運算替換乘除操作。

3,傳物件的引用,替換直接傳遞物件本身。

4,使用建構函式的初始化列表進行初始化。

三,如何寫出安全的**?

1,要考慮輸入輸出安全,注意邊界條件。

2,要執行緒安全,在單執行緒與多執行緒環境中,都可正常執行。

3,要考慮異常安全,對有可能出現的異常,採取措施進行處理。

軟體設計要素初探 元件化思想

在 軟體設計要素初探 一文,嘗試從軟體設計的整體角度,綜合討論了軟體設計的各種要素。本文討論用於系統劃分的元件化思想。將整個系統劃分為若干正交的緊密關聯的子系統,以及高內聚低耦合的小而美的模組與微服務,理清職責 互動與邊界。劃分的基本原則是 識別 分離和組合關注點 每個子系統必定有其核心關注點和基礎...

自動軟體設計

在1973年,美國人peter freeman在他的文章 自動軟體設計 automating software design 中有這樣的假設 如果有這樣一台機器 當我們告訴它我們需要什麼軟體的時候,它立刻就會滿足我們的要求,自動生成我們需要的程式。這台機器我稱之為萬能機。當我們提出需求的時候,需要關...

軟體設計原則

開閉原則 ocp 軟體設計的最大原則 這個原則說的是 對擴充套件開放,對修改關閉。其實意思是說,給系統新增新的功能,但不修改原有 如果能做到呢,關鍵在於抽象化,也就是封裝變化,抽象層不變,讓具體實現依賴抽象隨需求變化。使得系統具有很強的擴充套件性和可維護性。黎克特制代換原則 任何基類可以出現的地方,...