設計模式相關

2021-08-05 21:14:09 字數 2312 閱讀 9897

zuoxiaolong8810(左瀟龍)       設計模式學習記錄

程式設計六大原則

單一職責原則:描述的意思是每個類都只負責單一的功能,切不可太多,並且乙個類應當盡量的把乙個功能做到極致。

黎克特制替換原則:這個原則表達的意思是乙個子類應該可以替換掉父類並且可以正常工作。

介面隔離原則

:也稱介面最小化原則,強調的是乙個介面擁有的行為應該盡可能的小。

依賴倒置原則:這個原則描述的是高層模組不該依賴於低層模組,二者都應該依賴於抽象,抽象不應該依賴於細節,細節應該依賴於抽象。

迪公尺特原則

:也稱最小知道原則,即乙個類應該盡量不要知道其他類太多的東西,不要和陌生的類有太多接觸。

開閉原則:對修改關閉,對擴充套件開放。

單例模式:

懶漢模式:

public class slackersingleton ;

public static slackersingleton getsingleton()

}} return slackersingleton; }

}

餓漢模式:

public class hungrysingleton ;

private static class instance;

public static hungrysingleton getinstance()

}

**模式:

分為兩種,一種是靜態**,一種是動態**。兩種**從虛擬機器載入類的角度來講,本質上都是一樣的,都是在原有類的行為基礎上,加入一些多出的行為,甚至完全替換原有的行為。

靜態**:

靜態**採用的方式就是我們手動的將這些行為換進去,然後讓編譯器幫我們編譯,同時也就將位元組碼在原有類的基礎上加入一些其他的東西或者替換原有的東西,產生乙個新的與原有類介面相同卻行為不同的型別。

從靜態**的使用上來看,我們一般是這麼做的。

1,**類一般要持有乙個被**的物件的引用。

2,對於我們不關心的方法,全部委託給被**的物件處理。

3,自己處理我們關心的方法。

這種**是死的,不會在執行時動態建立,因為我們相當於在編譯期,也就是你按下ctrl+s的那一刻,就給被**的物件生成了乙個不可動態改變的**類。

靜態**對於這種,被**的物件很固定,我們只需要去**乙個類或者若干固定的類,數量不是太多的時候,可以使用,而且其實效果比動態**更好,因為動態**就是在執行期間動態生成**類,所以需要消耗的時間會更久一點。

動態**:動態**是jdk自帶的功能,它需要你去實現乙個invocationhandler介面,並且呼叫proxy的靜態方法去產生**類。

動態**有乙個強制性要求,就是被**的類必須實現了某乙個介面,或者本身就是介面。

簡單工廠模式:從設計模式的型別上來說,簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法(static factory method)模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實現。

public class ******factory else if("b".equals(productname))

return null; }}

public inte***ce iproduct

public class producta implements iproduct

}public class productb implements iproduct

}public class test

}

工廠方法模式:

定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。核心工廠類不再負責產品的建立,這樣核心類成為乙個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角色的情況下引進新的產品。

抽象工廠模式:為建立一組相關或相互依賴的物件提供乙個介面,而且無需指定他們的具體類。

1,首先從簡單工廠進化到工廠方法,是因為工廠方法彌補了簡單工廠對修改開放的弊端,即簡單工廠違背了開閉原則。

2,從工廠方法進化到抽象工廠,是因為抽象工廠彌補了工廠方法只能創造乙個系列的產品的弊端。

觀察者模式:乙個類管理著所有依賴於它的觀察者類,並且它狀態變化時會主動給這些依賴它的類發出通知。

設計模式 工廠類相關模式

工廠模式的定義如下 定義乙個用於建立物件的介面,讓子類決定例項化哪個類。工廠方法使乙個類的例項化延遲到其子類。其通用類圖如下。其產品類定義產品的公共屬性和介面,工廠類定義產品例項化的 方式 工廠模式 抽象工廠模式的優點 1 工廠模式巨有非常好的封裝性,結構清晰 在抽象工廠模式中,其結構還可以隨著需要...

python 設計模式之工廠類相關模式

python 工廠類設計模式 例 麥當勞自助點餐臺一類的點餐系統。在觸控顯示屏上,有三類可以選擇的餐品 漢堡,小食,飲料。當我們選擇好自己的食物,支付完成,訂單就生成了。1.漢堡以2種為例 class burger object name price 0.0 def getprice self re...

設計模式時的相關原則

開閉原則 open closed principle ocp software entities should be open for extension,but closed for modification.這個模組可以在不被修改的前提下被擴充套件。不修改源 而改變模組的行為 例如 策略模式 黎...