**1、什么是工廠方法模式?**
動態的根據傳遞的數據,新建相應的類的對象,我是這么理解的。
**2、在什么情況下使用工廠模式?**
.只有運行時才知道需要構造那種類型的對象。
.可以輕松添加一種新類型
.每種類型都需要不同的方法
**3、優缺點**
優點:工廠方法模式可以允許系統在不修改工廠角色的情況下引進新產品。
缺點:客戶可能僅僅為了創建一個特定的ConcreteProduct對象,就不得不創建一個Creator子類
**4、工廠方法模式實例:**
~~~
<?php
/*
*工廠方法模式
*--------------------
*@author liuxinming<1235355@qq.com>
*@time 2012-06-21
*/
//抽象工廠類
abstract class AbstractUser{
abstract function getUsername();
abstract function getUserID();
abstract function getUserIntegral();
}
//工廠實現
class UserInfo extends AbstractUser{
//姓名
function getUserName(){
return 'Liuxinming';
}
//ID
function getUserId(){
return 1;
}
//積分
function getUserIntegral(){
return 10;
}
}
echo UserInfo::getUserName()."<br>";
echo UserInfo::getUserId()."<br>";
echo UserInfo::getUserIntegral();
?>
~~~
PS:這是個比較簡單的工廠方法模式類,后續會不斷對此類進行改進 以及加入抽象工廠模式。
每天學習PHP設計模式進行中...,堅持每天介紹和學習一個設計模式。
- 前言
- PHP生成對象之設計模式—單例模式
- PHP生成對象之設計模式—工廠方法模式
- PHP之設計模式—適配器模式
- PHP之設計模式—建造者模式(通過選擇mysql,mongo數據庫鏈接類型做說明)
- PHP之設計模式—委托模式
- PHP面向對象學習一:對象基礎實踐
- PHP面向對象學習之二:深入了解面向對象高級特性
- PHP面向對象學習之三:抽象類和接口類的實際作用
- PHP解決問題進化論(整理筆記)
- PHP7新特性整理介紹篇
- php-fpm 與 Nginx優化總結
- Centos+Nginx+PHP7.0編譯安裝(和PHP5.6老版本共存)
- PHP7:Mongodb API使用
- PHP之include/require深入了解
- PHP內核了解:生命周期及運行模式