簡單設計模式

2021-06-22 07:57:10 字數 1750 閱讀 6568

簡單工廠模式屬於類的建立型模式,又叫做靜態工廠方法模式。通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。

1.工廠(creator)角色

簡單工廠模式的核心,它負責實現建立所有例項的內部邏輯。工廠類可以被外界直接呼叫,建立所需的產品物件。

2.抽象(product)角色

簡單工廠模式所建立的所有物件的父類,它負責描述所有例項所共有的公共介面。

3.具體產品(concrete product)角色

簡單工廠模式所建立的具體例項物件

在這個模式中,工廠類是整個模式的關鍵所在。它包含必要的判斷邏輯,能夠根據外界給定的資訊,決定究竟應該建立哪個具體類的物件。使用者在使用時可以直接根據工廠類去建立所需的例項,而無需了解這些物件是如何建立以及如何組織的。有利於整個軟體體系結構的優化。

不難發現,簡單工廠模式的缺點也正體現在其工廠類上,由於工廠類集中了所有例項的建立邏輯,所以「高內聚」方面做的並不好。另外,當系統中的具體產品類不斷增多時,可能會出現要求工廠類也要做相應的修改,擴充套件性並不很好。

package com.******factory;

/** * 簡單工廠模式

* @author zw

* data 2023年6月2日

*/ /**

* 採集

* */

public void get()

}

package com.******factory;

public class banana implements fruit

}

package com.******factory;

/** * 水果類的介面

* @author zw

* data 2023年6月2日

*/public inte***ce fruit

package com.******factory;

/** * 工廠類

* @author zw

* data 2023年6月2日

*/public class fruiltfactory

// /**

// * 例項化香蕉

// * @return

// */

// public static fruit getbanana()

public static fruit getfruit(string name) throws exceptionelse if(name.equalsignorecase("banana"))else

// 改進3

/*動態載入

* 使用泛型

*/class fruit = class.forname(name);

return (fruit) fruit.newinstance();

}}

測試類

package com.******factory.test;

import com.******factory.fruiltfactory;

import com.******factory.fruit;

/** * 測試類

* @author zw

* data 2023年6月2日

*/public class test

}

單設計模式

目標 記憶體中只能有乙份物件 include include 1.singleton不能為棧物件,如果為棧物件,可以在fun1,fun2,main中建立很多個,那就只能通過是堆物件 2.不能直接通過new表示式來建立堆物件,如果通過new的方式建立的物件位址都不同 3.位於public區域getin...

簡單設計類

package com.qidai 1 假如我們在開發乙個系統時需要對員工進行建模,員工包含 3 個屬性 姓名 工號以及工資。經理也是員工,除了含有員工的屬性外,另為還有乙個獎金屬性。請使用繼承的思想設計出員工類和經理類。要求類中提供必要的方法進行屬性訪問。員工類 public class test...

XP簡單設計之我見

xp的簡單設計指導團隊的設計盡可能的簡單 具有表現力。此外他們僅僅關注於計畫本次迭代中要完成的user story。他們並不會考慮哪些未來的user story。相反,他們會在不斷改進系統設計,是之對正在實現的user story而言保持在最優狀態。它包含三條原則 盡可能的使用最簡單的方法來實現當前...