我理解的抽象工廠模式其實就是為物件提供建立介面,呼叫建立介面就能得到想要的物件。
舉例:比如說需要和文字轉換類,傳如文字內容獲取路徑和名稱,需要得到(或文字)的html標籤或者是(或文字)的json_decode資料,在如下圖的抽象工廠模式中,我們只需要呼叫業務工廠類(htmlfactory或jsonfactory)裡面的方法即可得到你想要得到的業務類。
uml類圖
**體現
<?php
/** * 抽象工廠類
* class abstractfactory
*/abstract class abstractfactory
<?php
/** * html工廠類
* class htmlfactory
*/class htmlfactory extends abstractfactory
/*** 建立
* @param string $path
* @param string $name
* @return picturehtml|mixed
*/public function createpicture(string $path, string $name = '')
}
<?php
/** * json工廠類
* class jsonfactory
*/class jsonfactory extends abstractfactory
/*** 建立
* @param string $path
* @param string $name
* @return picturejson|mixed
*/public function createpicture(string $path, string $name = '')
}
<?php
/** * 業務介面類
* inte***ce mediainte***ce
*/inte***ce mediainte***ce
<?php
/** * 文字抽象類
* class text
*/abstract class text implements mediainte***ce
}
<?php
/** * 抽象類
* class picture
*/abstract class picture implements mediainte***ce
}
<?php
/** * 文字html實現業務類
* class texthtml
*/class texthtml extends text
}
<?php
/** * html業務實現類
* class picturehtml
*/class picturehtml extends picture
}
<?php
/** * 文字json實現類
* class textjson
*/class textjson extends text
}
<?php
/** * json實現類
* class picturejson
*/class picturejson extends picture
}
設計模式學習筆記(一) 抽象工廠模式
一 首先學術一下 以下內容來自 設計模式 可復用物件導向軟體的基礎 erich gamma,richard helm,ralph johnson,john vlissides 著 李英軍 馬曉星 蔡敏 劉建中 等譯 呂建 審校 抽象工廠模式 abstract factory 1 意圖 提供乙個建立一...
設計模式C 實現十一 抽象工廠模式
抽象工廠模式 abstract factory 提供乙個建立一系列相關或者相互依賴物件的介面,而無需指定他們具體的類。優點 便於交換產品系統,由於具體工廠類,在乙個應用中只需要初始化的時候出現一次,這就使得改變乙個應用的具體工廠變得非常容易,只需要改變具體工廠即可以使用不同的產品配置。它讓具體的建立...
設計模式 工廠模式 抽象工廠模式
建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...