深入淺出設計模式(二) 工廠模式

2021-10-07 02:31:41 字數 3012 閱讀 9193

簡單工廠模式(****** factory pattern),又稱為靜態工廠方法(static factory method),它屬於建立型模式。

在簡單工廠模式中,可以根據引數的不同返回不同類的例項。簡單工廠模式專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。

比如有乙個電腦商,目前生產聯想電腦,隨著業務擴充套件,他現在需要生產惠普的電腦,我們就需要乙個單獨的類來專門生產電腦,這就用到了簡單工廠模式。

下面以**為例:

介面:

package designpattern.factory.******factory.noodles;

public

inte***ce

inoodles

package designpattern.factory.******factory.noodles;

public

class

lznoodles

implements

inoodles

}

package designpattern.factory.******factory.noodles;

public

class

paonoodles

implements

inoodles

}

package designpattern.factory.******factory.noodles;

public

class

regannoodles

implements

inoodles

}

簡單工廠模式
package designpattern.factory.******factory;

import designpattern.factory.******factory.noodles.inoodles;

import designpattern.factory.******factory.noodles.lznoodles;

import designpattern.factory.******factory.noodles.paonoodles;

import designpattern.factory.******factory.noodles.regannoodles;

/** * 簡單工廠模式

* 一家「簡單麵館」(簡單工廠類)

*/public

class

******noodlesfactory

}}

測試
package designpattern.factory.******factory;

import designpattern.factory.******factory.noodles.inoodles;

import designpattern.factory.******factory.noodles.lznoodles;

public

class

test

}

工廠方法模式是比較複雜一點的工廠模式的體現,主要是通過建立工廠類來進行對物件的構建。

package designpattern.factory.factorymethod;

import designpattern.factory.******factory.noodles.inoodles;

/** * 工廠方法模式

*/public

inte***ce

inoodlesfactory

package designpattern.factory.factorymethod;

import designpattern.factory.******factory.noodles.inoodles;

import designpattern.factory.******factory.noodles.lznoodles;

public

class

lzinoodlesfactory

implements

inoodlesfactory

}

package designpattern.factory.factorymethod;

import designpattern.factory.******factory.noodles.inoodles;

import designpattern.factory.******factory.noodles.paonoodles;

public

class

paoinoodlesfactory

implements

inoodlesfactory

}

package designpattern.factory.factorymethod;

import designpattern.factory.******factory.noodles.inoodles;

import designpattern.factory.******factory.noodles.regannoodles;

public

class

reganinoodlesfactory

implements

inoodlesfactory

}

測試類
package designpattern.factory.factorymethod;

import designpattern.factory.******factory.noodles.inoodles;

public

class

test

}

**例項:

設計模式demo

深入淺出設計模式 工廠模式

披薩店新推出了點單系統,披薩需要通過不同的製作,相同的烘焙,裁剪等工序才能完成。披薩的種類實在太多了,在構造披薩例項時,光是if else 語句就長的可怕,修改與維護更令人頭疼。披薩子類繼承實現相同的基類,通過基類呼叫不同的子類,使得 具有一定的彈性,將構造子類放入業務 導致了子類與業務 的耦合,令...

深入淺出之工廠模式

首先說說簡單工廠模式,我用現實中的汽車工廠舉例子,首先有個汽車類的介面叫做car,裡面有個開車的方法叫做drive 然後有個吉利車的類叫做jili,實現了car的介面,還有個奇瑞車的類叫做qirui,也實現了car的介面 因為都是車嘛,當然能開了 inte ce carelse if qirui e...

深入淺出設計模式 模板模式

設計模式是程式設計師必須掌握的技能,熟練應用各種設計模式,不僅可以提公升我們的編碼能力,也可以使得我們的編碼更美觀。在這裡我們來講解一下模板模式。模板模式 template pattern 中,乙個抽象類公開定義了執行它的方法的方式 模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式...