軟件架構設計模式——從腐爛的不良設計中品讀軟件的人格障礙


在這裏插入圖片描述需求總是變化的,我們的系統會不斷變化,不良設計會隨着時間會慢慢變得更糟糕。設計的時候設計者鼠目寸光,沒有長遠規劃,會給未來留下隱患。

僵硬性

在這裏插入圖片描述
在這裏我們提到了耦合度的問題,**耦合度描述了一個對象依賴於另外一個對象的程度。**鬆耦合的對象可以獨立發生變化,彼此互相不影響。這也是我們系統設計的目標。

class A{
	int x;
	...
}
class B extends A{
	void b(){
		x=5;
	}
	...
}

如上述例子,我們的B強依賴於A(繼承關係),如果我們修改了A中的變量名稱,那麼我們也需要修改B裏面的代碼,這樣B才能正常工作。這樣的代碼我們是不提倡的。我們儘量用組合關係(弱依賴)而不是繼承關係

class B {
	a = new A();
	void b(){
		a.x=5;
	}
	...
}

Erich Gamma(GoF)原則

  1. 儘量用組合關係而不是繼承關係。
  2. 對接口進行編程,而不是對實現進行編程。

脆弱性

在這裏插入圖片描述
脆弱性啊,就是傳說中的修改完了一個bug,會引來新bug。

不可移植性

在這裏插入圖片描述
我們一定要高內聚低耦合的設計,不可移植性是低內聚高耦合的。

粘滯性

在這裏插入圖片描述環境的粘滯性在佈局的時候很麻煩。

不必要的複雜性

在這裏插入圖片描述本以爲自己是深謀遠慮,結果你以爲的未來卻並沒有發生。

不必要的重複性

在這裏插入圖片描述

不透明性

在這裏插入圖片描述
寫代碼本來有代碼規範,各種類名方法名應該是有可解釋性的。

設計模式 是軟件開發人員在軟件開發過程中,針對一般問題的最佳解決方案,該方案能夠被程序員反覆應用於解決類似問題

設計模式 – 概述有相關類型的更全面的總結
設計模式類型事例有很通俗的類型例子講解,可以提供感性認識
我們的設計模式學習中主要包含如下內容。
JAVA相關DPs
在這裏插入圖片描述今日寫文音樂《有可能的夜晚》周深版

不能親口說晚安
那就唱給你聽吧

當你突然看我的時候
當話語開始多餘的時候
當心慢慢靠近的時候
這時天剛好黑了
當我快忍不住的時候
當別人開始多餘的時候
當愛悄悄來臨的時候
這時天剛好黑了
無需言語
無盡浪漫
無限可能的夜晚
讓蠟燭代替所有燈
讓音樂代替話語聲
此時無聲勝有聲
如果要我開口
只能說一句話
讓我成爲你的有可能
讓yes代替所有no
讓勇敢代替所有酒
剛下眉頭卻上心頭
如果要我選擇
只能愛一個人
讓我成爲你的有可能

當你突然看我的時候
當話語開始多餘的時候
當心慢慢靠近的時候
這時天剛好黑了
當我快忍不住的時候
當別人開始多餘的時候
當愛悄悄來臨的時候

Quand il me prend dans ses bras 當他擁我入懷
Qu’il me parle tout bas 低聲對我說話 Je
vois la vie en rose 我看見玫瑰色的人生
Il me dit des mots d’amour 他對我說愛的言語
Des mots de tous les jours 天天有說不完的情話
Et ça me fait quelque chose 這對我來說可不一般
讓yes代替所有no
讓勇敢代替所有酒
剛下眉頭卻上心頭
如果要我選擇只能愛一個人
讓我成爲你的有可能

如果只能說一句話
讓我成爲你的有可能

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章