在上篇文章23種設計模式01—工廠模式
中介紹了簡單工廠模式和工廠方法模式,
但是簡單工廠模式在新增新的產品師,需要修改工廠類,違背了開閉原則(ocp原則);
工廠方法模式,提供乙個抽象工廠角色,一旦要建立新的同一產品的不同型號, 只需要建立乙個具體工廠角色,用於建立對應的產品,而不用修改原有的**,解決了簡單工廠的缺點。
但是,如果要產生不同系列的產品,工廠方法模式就無能為力了。
首先我們來描述乙個人, 開著車, 嘴裡叼著蘋果, 手裡拿著ak47,很瀟灑。。。
這個人有三個物件描述他的狀態,車(交通工具),蘋果(食物),ak47(**)
package com.chb.factorydesingpattern_abstractfactory;
public
class car
}package com.chb.factorydesingpattern_abstractfactory;
public
public
void
eat()
}package com.chb.factorydesingpattern_abstractfactory;
public
class ak47
}
package com.chb.factorydesingpattern_abstractfactory;
public
class test
}結果:
老子開著車,嘴裡叼著蘋果,手裡拿著ak47, da da da...
package com.chb.factorydesingpattern_abstractfactory;
public
class defaultfactory
return
}public ak47 createak47()
}
package com.chb.factorydesingpattern_abstractfactory;
public
class test
}
哈利波特騎著掃把, 使用魔法棒, 吃毒蘑菇
交通工具可以跑, 食物可以吃, **有攻擊力。
}老子開著車,嘴裡叼著蘋果,手裡拿著ak47, da da da...
老白呀, 老子怎麼覺得缺點什麼, 衣食無憂, 有車遊山玩水, 有槍闖天下,還缺什麼呢?
老白: 爺, 酒足飯飽思淫慾, 你還缺乙個妞,嘿嘿!
對, 老白知我心呀, 老白給爺弄個妞,
老白: 好的,通知下去,給大爺弄個妞來
凡人(魔法)廠長: 白爺,我們沒有這個生產線, 而且你的規範裡也沒有這個要求, 如果你修改規範, 我們生產線要大改, 而且成本提高。
老白: 這一動,傷筋動骨,到底變不變。。。不改,生產不了
於是老白卒(抽象工廠模式遇到難題)
23種設計模式之 工廠模式
android中,工廠模式分為三種 簡單工廠模式 工廠方法模式 抽象工廠模式。一.簡單工廠模式。定義 簡單工廠模式又叫靜態方法模式 因為工廠類定義了乙個靜態方法 簡單工廠模式可以理解為負責生產物件的乙個類,稱為 工廠類 我們主要講的就是簡單工廠模式,其他兩種也是簡單工廠模式的衍生 我們在專案中經常使...
23種設計模式之工廠模式
基本介紹 簡單工廠模式定義了乙個工廠類,他可以根據引數的不同返回不同類的例項,被建立的例項通常都具有共同的父類,簡單工廠模式中用於被建立例項的方法通常為靜態 static 方法,因此簡單工廠模式又被成為靜態工廠方法 特點需要什麼,只需要傳入乙個正確的引數,就可以獲取所需要的物件,而無需知道其實現過程...
23種設計模式之 工廠設計模式
前言 記得大二時上過一門設計模式的課,當時聽的那叫乙個懵逼。如今工作半年了,想把東西再撿起來,順便記錄一下。工廠模式是平時接觸的多一點的,就從工廠模式開始吧 什麼是工廠設計模式?工廠設計模式,顧名思義,就是用來生產物件的,是一種建立型設計模式。在物件導向語言中,萬物皆物件,這些物件都需要建立,如果建...