国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

爪哇語言抽象工廠創立性模式介紹

2019-11-18 11:32:21
字體:
來源:轉載
供稿:網友


  工廠模式有簡單工廠模式,工廠方法模式和抽象工廠模式幾種形態。其中簡單工廠模式和工廠方法模式已經在前面作過介紹。在這里,我們來介紹抽象工廠模式。

  抽象工廠模式是所有形態的工廠模式中最為抽象和最具廣泛性的一種形態。

  抽象工廠模式的定義

  抽象工廠模式是工廠方法模式的進一步擴廣化和抽象化。我們給出抽象工廠模式的類圖定義如下。

爪哇語言抽象工廠創立性模式介紹(圖一)
       圖1. 抽象工廠模式的類圖定義
  從上圖可以看出,簡單工廠模式涉及到以下的角色

   抽象工廠(AbstractFactory)類或接口

   擔任這個角色的是工廠方法模式的核心,它是與應用程序無關的。任何在模式中創立對象的工廠類必須實現這個接口,或繼續這個類。

   實工廠類 (Conrete Factory)

   擔任這個角色的是與應用程序緊密相關的,直接在應用程序調用下,創立產品實例的那樣一些類。

   抽象產品 (Abstract PRodUCt)

   擔任這個角色的類是工廠方法模式所創立的對象的父類,或它們共同擁有的接口。

   實產品 (Concrete Product)

   擔任這個角色的類是工廠方法模式所創立的任何對象所屬的類。

  怎么這個類圖和工廠方法模式的類圖看起來是一樣的?

  是的,圖是一樣的,但是含義有很大的不同。必須指出,在抽象工廠模式中,抽象產品 (AbstractProduct) 可能是一個或多個,從而構成一個或多個產品族(Product Family)。 在只有一個產品族的情況下,抽象工廠模式實際上退化到工廠方法模式。在上面的類圖中,只給出了一個產品族,相當于位圖中的一個點,而完整的位圖應當是三維的,如下圖。


爪哇語言抽象工廠創立性模式介紹(圖二)
     圖2. 抽象工廠模式的位圖  
  從位圖可以清楚地看到,與紙面垂直的數軸,即第三維軸,是代表產品族的數軸。上面的位圖中展示的是有兩個產品族,族A和族B的情形。

  在只有一個產品族時,第三維就坍縮掉,位圖也就只剩下兩維。這時抽象工廠模式就退化得與工廠方法模式一模一樣。
  在什么情形下應當使用抽象工廠模式

  在以下情況下,應當考慮使用抽象工廠模式。

  首先,一個系統應當不依靠于產品類實例被創立,組成,和表示的細節。這對于所有形態的工廠模式都是重要的。

  其次,這個系統的產品有多于一個的產品族。

  第三,同屬于同一個產品族的產品是設計成在一起使用的。這一約束必須得在系統的設計中體現出來。

  最后,不同的產品以一系列的接口的面貌出現,從而使系統不依靠于接口實現的細節。

  其中第二丶第三個條件是我們選用抽象工廠模式而非其它形態的工廠模式的要害性條件。

  抽象工廠模式在小花果園系統中的實現

  現在,我們在佛羅里達的渡假小屋修整好啦。接下來,一項重要而光榮的工作,就是開發小屋后面的小花園。這意味著,我們有兩處小花園需要照料,一處在北方地區,另一處在亞熱帶地區。抽象工廠模式正好適用于我們的情況。

爪哇語言抽象工廠創立性模式介紹(圖三)
圖3. 抽象工廠模式應用于小花果園系統中。三種不同的背景顏色可以區分工廠類,蔬菜類(第一產品族),和水果類的類圖(第二產品族) 三層交換技術 交換機與路由器密碼恢復 交換機的選購 路由器設置專題 路由故障處理手冊 數字化校園網解決方案


   兩處花園就相當于兩個產品族。顯然,給北方花園的植物是要種植在一起的,給南方花園的植物是要另種植在一起的。這種分別應當體現在系統的設計上面。這就滿足了應當使用抽象工廠模式的第二和第三個條件。

package com.javapatterns.abstractfactory;

public interface Gardener {}
  代碼清單1. 接口 Gardener。




發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彰化县| 海晏县| 桐乡市| 平安县| 东乡族自治县| 河南省| 墨江| 玉溪市| 于田县| 苏州市| 天柱县| 石泉县| 玉门市| 扎鲁特旗| 赤水市| 东方市| 兴仁县| 左云县| 互助| 清丰县| 馆陶县| 楚雄市| 洮南市| 平泉县| 栾川县| 兴海县| 新竹市| 花莲市| 临江市| 江西省| 东兰县| 贵阳市| 浙江省| 安义县| 新平| 蒙山县| 宝坻区| 自贡市| 邯郸市| 黔东| 涞源县|