大話設計模式

2021-07-30 21:02:56 字數 2006 閱讀 9046

例項:計算機控制程式(if與switch的效率問題)

印刷術——活字印刷術:可維護,可復用,可擴充套件,靈活性好。

物件導向的好處:通過封裝、繼承、多型把程式的耦合度降低。

業務的封裝:業務邏輯與介面邏輯分開,讓它們之間的耦合度下降。

聚合關係:聚合表示一種弱的「擁有」關係,體現的是a物件可以包含b物件,但b物件不是a物件的一部分。(雁群和大雁)

合成關係:合成表示一種強的「擁有」關係,體現了嚴格的部分和整體的關係,部分和整體的生命週期一樣。(鳥和翅膀)

public abstract class human

我們定義了乙個被稱為"人類"的抽象基類."去撒尿"這個方法是抽象的,因為對於整個人類來說沒有乙個統一的撒尿方法.只有當你具體地討論這個人是男人還是女人的時候,"撒尿"這個方法才有具體的含義.與此同時,"人類"也是乙個抽象的概念-不可能有乙個既不是男人也不是女人的"人類"存在.當我們討論乙個人的時候,ta要麼是個男人,要麼是個女人.

public class male extends human

}public class female extends human

}

現在我們有了更具體的關於男人和女人的類定義:男人站著撒尿,.他們都是人類的繼承類,但是他們有不同的撒尿方法.

多型最完美的展現在於當我們試圖讓一屋子的人都去撒尿的時候:

public static void main(string args)

}

得到的結果是

stand up

sit down

sit down

stand up

stand up

...

實現

我們將建立乙個 shape 介面和實現 shape 介面的實體類。下一步是定義工廠類 shapefactory。

factorypatterndemo,我們的演示類使用 shapefactory 來獲取 shape 物件。它將向 shapefactory 傳遞資訊(circle / rectangle / square),以便獲取它所需物件的型別。

步驟 1:建立乙個介面

public inte***ce shape

步驟 2:建立實現介面的實體類

public class rectangle implements shape 

}public class square implements shape

}public class circle implements shape

}

步驟 3:建立乙個工廠,生成基於給定資訊的實體類的物件。

public class shapefactory 		

if(shapetype.equalsignorecase("circle")) else if(shapetype.equalsignorecase("rectangle")) else if(shapetype.equalsignorecase("square"))

return null;

}}

步驟4:使用該工廠,通過傳遞型別資訊來獲取實體類的物件。

public class factorypatterndemo 

}

步驟 5:驗證輸出

inside circle::draw() method.

inside rectangle::draw() method.

inside square::draw() method.

例項:商場收銀軟體

物件導向的程式設計,並不是類越多越好,類的劃分是為了封裝,但分類的基礎是抽象,具有相同屬性和功能的物件的抽象集合才是類。

大話設計模式

大話設計模式 這是乙個中國人寫的書,準確的說是部落格。經常聽到有人說國人寫不出好書,而說的人自己有夢想寫出一些書,那言外之意 有些書,是好書,我們可以好好精細研讀。有些書,寫的不是那麼精彩,我們可以借鑑學習。而能出版的書 一些不常見的出版社除外 總有值得我們去學習的東西。其實熟的好與壞很多時候不在於...

大話設計模式 原型設計模式

用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。是用於建立重複的物件,同時又能保證效能。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。意圖 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。主要解決 在執行期建立和刪除原型。如何解決 利用已有的乙個原...

大話設計模式 組合模式

abstract class component public abstract function add component c public abstract function remove component c public abstract function display depth 葉...