Java設計模式 一

2021-06-23 09:08:47 字數 1915 閱讀 8978

學習 gof 設計模式的重要性:

gof 的設計模式反覆向你強調乙個宗旨:要讓你的程式盡可能的可重用.

建立模式的人是大師,但是拘泥於模式的人永遠是工匠.

設計模式之 factory

定義:提供建立物件的介面.

如何使用?

工廠模式中有: 工廠方法(factory method) 抽象工廠(abstract factory).

上例中,我們使用的是簡單的工廠方法. 這兩個模式沒有很明顯的區別,區別在於需要建立

物件的複雜程度上。如果我們建立物件的方法變得複雜了,我們就可能要將上例中 factory

變成抽象類,將共同部分封裝在抽象類中,不同部分使用子類實現:

public abstract class factory

public class ******factory extends factory

public sample2 creator()

}public class bombfactory extends factory

public sample2 creator()

}factorymethod 往往只是建立單個的例項。abstract factory 建立一系列的例項組,這些例項彼此相關。

舉例 1

下圖是來自天極網" 閻巨集"的 爪哇語言抽象工廠創立性模式介紹 中的抽象工廠圖:

在這張圖中, 有兩類產品介面 inte***ce ram 和 inte***ce cpu; 同時有兩個建立方

法:macproducer和pcproducer,這兩個建立方法中都有createcpu()和createram(),返回的

例項物件組是 cpu 和 ram, 這是分別來自兩類產品介面,表面彼此是相關的.因此它是抽象工

廠.舉例 2

我們以 jive 的 forumfactory 為例:

public abstract class forumfactory

//以下使用了 singleton 單態模式

if (factory == null)

catch (exception e) }}

}//now, 返回 proxy.用來限制授權對 forum 的訪問

return new forumfactoryproxy(authorization, factory,

factory.getpermissions(authorization));

}//真正建立 forum 的方法由繼承 forumfactory 的子類去完成.

public abstract forum createforum(string name, string description)

throws unauthorizedexception, forumalreadyexist***ception;

....

}因為現在的 jive 是通過資料庫系統存放論壇帖子等內容資料,如果有人要擴充套件為純粹的文

件系統存放的論壇帖子,這個工廠方法 forumfactory 就提供了提供動態介面:

private static string classname =

"com.jivesoftware.forum.database.dbforumfactory";

你可以使用自己開發的建立 forum 的方法代替

com.jivesoftware.forum.database.dbforumfactory 就可以.

在上面的一段**中一共用了三種模式,除了工廠模式外,還有 singleton 單態模式,以及

proxy模式,proxy模式主要用來授權使用者對forum的訪問,因為訪問forum有兩種人:乙個是

註冊使用者 乙個是遊客 guest,那麼那麼相應的許可權就不一樣,而且這個許可權是貫穿整個系統

的,因此建立乙個 proxy,類似閘道器的概念,可以很好的達到這個效果.

java設計模式 工廠模式一

工廠方法模式所包含的成員 1 抽象產品 product 抽象類或者介面,用於定義具體產品必須實現的方法 2 具體產品 concreteproduct 如果product是乙個抽象類,那麼具體產品是product的子類 如果product是乙個介面,那麼具體產品是實現該介面的類。注 一般情況下,乙個抽...

Java設計模式(一) 工廠模式

工廠模式,顧名思義就是像工廠一樣生產物件,我們知道一家生產筆的工廠,不僅僅只生產鉛筆,還有原子筆和鋼筆等型別。同理,我們採用工廠類來獲取各物件。以工廠生產筆為例,物件是筆,類penfactory是生產筆的工廠。建立所有筆的父類pen,有乙個通用的方法write 因為每一種筆寫的內容不容,方法的實現不...

設計模式Java實現(一)

工廠模式 工廠模式在實踐中有如下三種常用 簡單工廠 factory 工廠方法 factory method 和抽象工廠 abstract factory 其中 factory並不是gof提出的23種設計模式之一,但由於其實現簡單所以也被廣泛使用。簡單工廠 類設計圖 工廠方法 類設計圖 抽象工廠 類設...