設計模式(一):簡單工廠模式

轉載請注明作者和出處http://www.reibang.com/p/7f60dd5c2825

運行平臺: Windows

php版本: php7.0


針對設計模式的學習,結合自己的情況,我針對自己做了幾點安排

1.學習這玩意一靠天賦镐依,二靠機緣,三靠多看例子钝侠,實在看不懂過段時間再來看疤坝,多看其他文章的例子佣蓉,或者開源框架或者擴展包里的源碼披摄,找找看里面所用到的設計模式。
2.一定要多敲代碼勇凭,要多敲代碼行疏,要多敲代碼,要多敲代碼

  • 類名通常命名為:模塊名稱”+Factory套像,比如用戶模塊就用UserFactory
  • 方法通常命名為 "get"+接口名稱酿联,“create”+接口名稱,例如一個接口叫UserEbi,那么方法名稱通常為,getUserEbi或者createUserEbi

代碼

class Man{
    public function getName(){
        echo "my name is laowang";
    }
}

class Women{
    public function getName(){
        echo "my name is xiaomei";
    }
}

class PersonFactory{
    public function createPerson($type){
        if($type == 'man'){
            $person = new Man();
        }elseif($type == 'women'){
            $person = new Women();
        }
        return $person;
    }
}

$type = "man";
$person = new PersonFactory();
$name = $person->createPerson($type);
$name = $name->getName();
var_dump($name);

輸出結果:

簡單工廠優(yōu)缺點

  • 幫助封裝
    簡單工廠雖然簡單夺巩,但是非常友好的幫助我們實現了組件的封裝贞让,然后讓組件外部能真正面向接口編程。
  • 解耦
    通過簡單工廠柳譬,實現了客戶端和具體實現類的解耦喳张。
    如果上面的例子,客戶端根本不知道是由誰來實現美澳,也不知道具體如何實現销部,客戶端只是通過工廠獲取它需 要的接口對象。
  • 可能增加客戶端的復雜度
    如果通過客戶端的參數來選擇具體實現的類制跟,那么就必須要客戶端理解每個參數的含義和功能舅桩,這會增加客戶端的使用難度,也暴露了內部實現雨膨。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末擂涛,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子聊记,更是在濱河造成了極大的恐慌撒妈,老刑警劉巖恢暖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異狰右,居然都是意外死亡杰捂,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門棋蚌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嫁佳,“玉大人,你說我怎么就攤上這事附鸽⊥哑矗” “怎么了瞒瘸?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵坷备,是天一觀的道長。 經常有香客問我情臭,道長省撑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任俯在,我火速辦了婚禮竟秫,結果婚禮上,老公的妹妹穿的比我還像新娘跷乐。我一直安慰自己肥败,他們只是感情好,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布愕提。 她就那樣靜靜地躺著馒稍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪浅侨。 梳的紋絲不亂的頭發(fā)上纽谒,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機與錄音如输,去河邊找鬼鼓黔。 笑死,一個胖子當著我的面吹牛不见,可吹牛的內容都是我干的澳化。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼稳吮,長吁一口氣:“原來是場噩夢啊……” “哼肆捕!你這毒婦竟也來了?” 一聲冷哼從身側響起盖高,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤慎陵,失蹤者是張志新(化名)和其女友劉穎眼虱,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體席纽,經...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡捏悬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了润梯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片过牙。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖纺铭,靈堂內的尸體忽然破棺而出寇钉,到底是詐尸還是另有隱情,我是刑警寧澤舶赔,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布扫倡,位于F島的核電站,受9級特大地震影響竟纳,放射性物質發(fā)生泄漏撵溃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一锥累、第九天 我趴在偏房一處隱蔽的房頂上張望缘挑。 院中可真熱鬧,春花似錦桶略、人聲如沸语淘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惶翻。三九已至,卻和暖如春蹬挺,著一層夾襖步出監(jiān)牢的瞬間维贺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工巴帮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留溯泣,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓榕茧,卻偏偏與公主長得像垃沦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子用押,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內容

  • 原創(chuàng)文章肢簿,同步發(fā)自作者人個博客,轉載請務必將下面這段話置于文章開頭處。本文轉發(fā)自Jason's Blog池充,原文鏈接...
    郭俊Jason閱讀 2,174評論 1 55
  • 01.模式動機 做過Web開發(fā)的開發(fā)者都知道,在將用戶的密碼存儲在數據庫中時桩引,我們需要將密碼首先加密然后在寫入數據...
    Java技術范閱讀 208評論 0 0
  • 源代碼GitHub源代碼[https://github.com/ydstar/DesignPattern] 1.本...
    信仰年輕閱讀 875評論 0 1
  • 設計模式概述 在學習面向對象七大設計原則時需要注意以下幾點:a) 高內聚、低耦合和單一職能的“沖突”實際上收夸,這兩者...
    彥幀閱讀 3,747評論 0 14
  • 孩子升入小學一年級坑匠,就要開始長達十幾二十年的全天的、規(guī)范的學習生涯了卧惜。在這段生涯里厘灼,我們的孩子將從兒童到少年,從少...
    柔汐之光閱讀 308評論 0 0