設計模式(一)--抽象工廠模式
阿新 • • 發佈:2018-12-03
依賴 紅色 藍色 種類型 一個 設計 產品族 sha 使用
工廠模式:是圍繞一個超級工廠創建其他工廠。該超級工廠又稱為其他工廠的工廠。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。
主要解決:主要解決接口選擇的問題。
優點 :具體類的創建實例過程與客戶端分離,客戶端通過工廠的抽象接口操縱實例,客戶端並不知道具體的實現是誰。
缺點:如果產品族中需要增加新的產品,則也需要修改抽象工廠和所有的具體工廠。
抽象工廠模式的使用場景:
一個系統不依賴於產品線實例如何被創建、組合和表達的細節。
系統中有多於一個的產品線,而每次只使用其中某一產品線。
一個產品線(或是一組沒有任何關系的對象)擁有相同的約束。
實例:我們現在有這麽一個場景,要求有不同的形狀,每一種形狀有不同的顏色,比如圓形,我們要求紅色的圓形、赤橙黃綠青藍紫等各種各樣顏色的圓形。
<?php interface shape{ static public function circle(); static public function rectange(); } class redShape implements shape{ static public function circle(){ return new redCircle(); } static public function rectange(){ return new redRectange(); } } class blueShape implements shape{ static public function circle(){ return new blueCircle(); } static public function rectange(){ return new blueRectange(); } } //創建實例 class blueCircle{ public function getName(){ echo ‘藍色圓形‘; } } $factory=blueShape::circle(); $factory->getName();
設計模式(一)--抽象工廠模式