3 23 建立型設計模式 簡單工廠與抽象工廠

2021-10-06 15:33:57 字數 1964 閱讀 1147

簡單工廠、工廠方法的使用,是乙個問題逐步演變的過程由簡單工廠->工廠方法。故在此合併梳理知識點。

**都是為了解決實際問題,在此我們現在假設一種業務場景,我們場景就不來雞鳴狗叫了

首先:我們現在用手機來做業務場景,現在又手機如下:蘋果、三星、華為、塞班。現在每一種手機存在乙個介面需要顯示手機的作業系統。

基於此我們可以逐步演變如下**:

/// /// 蘋果手機

///

}/// /// 三星手機

///

public class samsungphone

}/// /// 華為手機

///

public class huaweiphone

}/// /// 塞班手機

///

public class saipanphone

}

介面端呼叫**:

private void btnshowphonesystem_click(object sender, eventargs e)

實現效果:

基於如上兩點可以修改**如下:

1.介面

/// /// 手機介面

///

public inte***ce iphone

2.手機物件重構繼承

/// /// 蘋果手機

///

}/// /// 三星手機

///

public class samsungphone : iphone

}/// /// 華為手機

///

public class huaweiphone : iphone

}/// /// 塞班手機

///

public class saipanphone : iphone

}

3.介面端呼叫與簡單工廠

3.2由於字串建立工廠而字串有太多的可能性,而沒有約束便沒有自由,故將其限定為列舉

private void btnfactoryshowphonesystembyenum_click(object sender, eventargs e)

public static iphone createphonebyenum(phonetype pphonetype)

return pphone;

} public enum phonetype

基於此封裝我們看到**確實寫的比3.1版本多,但是如果此**需要很多地方使用,作為架構師的預備役應該有為能封裝出便捷**而感到愉悅,使用列舉封裝將避免呼叫過程中可能出現的情況,無形間增加後續**編寫的效率,架構師就是為了讓軟體結構清晰,呼叫便捷等。

基於此工廠生產了乙個物件,故其也是建立型工廠分類中的乙個。

在簡單工廠中我們只是轉移了細節從介面轉移到簡單工廠中,然後封裝了細節。

private void btnshowphonesystembyfactorymethod_click(object sender, eventargs e)

public static class phonefactorymethod

public static iphone createsamsungphone()

public static iphone createhuaweiphone()

public static iphone createsaipanphone()

}

uaweiphone()

public static iphone createsaipanphone()

}

設計模式 建立型 工廠 簡單工廠模式

動態決定哪個類被例項化,不必事先知道哪個類要被例項化!三 舉例 qq裡面常用發表情的 1 表情 b new smile 這種應該是很熟悉的建立方式 2 表情 b 表情工廠.createbiaoqing 表情內容 四 角色與結構 工廠類角色 creator bqfctory,在creat方法下建立產品...

設計模式 建立型 簡單工廠

之前學習了設計模式的原則,下面我們正式學習這些模式。設計模式分為了三個大類分別是建立型模式 結構型模式 和行為型模式。首先建立型模式 顧名思義他是用來描述如何建立物件的 建立型模型的分類 簡單工廠模式 抽象工程模式,單例模式 原型模式 建造者模式。簡單工廠 提供了專門的工廠類用於建立物件 將物件的建...

設計模式 建立型 簡單工廠模式

建立型模式中工廠模式有三兄弟,先從簡單工廠講起。工廠模式中包含了產品與工廠兩個物件,其中產品是是乙個個具體的物件,而工廠負責生產這些產品。例如現在我們的需求是有兩個食品要在食品廠加工。兩個食品分別叫做麵包和巧克力,要在食品廠加工。通過需求分析出應該有如下幾個類,麵包類 巧克力類 食品加工廠類。由於麵...