簡單工廠、工廠方法的使用,是乙個問題逐步演變的過程由簡單工廠->工廠方法。故在此合併梳理知識點。
**都是為了解決實際問題,在此我們現在假設一種業務場景,我們場景就不來雞鳴狗叫了
首先:我們現在用手機來做業務場景,現在又手機如下:蘋果、三星、華為、塞班。現在每一種手機存在乙個介面需要顯示手機的作業系統。
基於此我們可以逐步演變如下**:
介面端呼叫**:/// /// 蘋果手機
///
}/// /// 三星手機
///
public class samsungphone
}/// /// 華為手機
///
public class huaweiphone
}/// /// 塞班手機
///
public class saipanphone
}
實現效果:private void btnshowphonesystem_click(object sender, eventargs e)
基於如上兩點可以修改**如下:
1.介面
2.手機物件重構繼承/// /// 手機介面
///
public inte***ce iphone
3.介面端呼叫與簡單工廠/// /// 蘋果手機
///
}/// /// 三星手機
///
public class samsungphone : iphone
}/// /// 華為手機
///
public class huaweiphone : iphone
}/// /// 塞班手機
///
public class saipanphone : iphone
}
3.2由於字串建立工廠而字串有太多的可能性,而沒有約束便沒有自由,故將其限定為列舉
基於此封裝我們看到**確實寫的比3.1版本多,但是如果此**需要很多地方使用,作為架構師的預備役應該有為能封裝出便捷**而感到愉悅,使用列舉封裝將避免呼叫過程中可能出現的情況,無形間增加後續**編寫的效率,架構師就是為了讓軟體結構清晰,呼叫便捷等。private void btnfactoryshowphonesystembyenum_click(object sender, eventargs e)
public static iphone createphonebyenum(phonetype pphonetype)
return pphone;
} public enum phonetype
基於此工廠生產了乙個物件,故其也是建立型工廠分類中的乙個。
在簡單工廠中我們只是轉移了細節從介面轉移到簡單工廠中,然後封裝了細節。
uaweiphone()private void btnshowphonesystembyfactorymethod_click(object sender, eventargs e)
public static class phonefactorymethod
public static iphone createsamsungphone()
public static iphone createhuaweiphone()
public static iphone createsaipanphone()
}
public static iphone createsaipanphone()
}
設計模式 建立型 工廠 簡單工廠模式
動態決定哪個類被例項化,不必事先知道哪個類要被例項化!三 舉例 qq裡面常用發表情的 1 表情 b new smile 這種應該是很熟悉的建立方式 2 表情 b 表情工廠.createbiaoqing 表情內容 四 角色與結構 工廠類角色 creator bqfctory,在creat方法下建立產品...
設計模式 建立型 簡單工廠
之前學習了設計模式的原則,下面我們正式學習這些模式。設計模式分為了三個大類分別是建立型模式 結構型模式 和行為型模式。首先建立型模式 顧名思義他是用來描述如何建立物件的 建立型模型的分類 簡單工廠模式 抽象工程模式,單例模式 原型模式 建造者模式。簡單工廠 提供了專門的工廠類用於建立物件 將物件的建...
設計模式 建立型 簡單工廠模式
建立型模式中工廠模式有三兄弟,先從簡單工廠講起。工廠模式中包含了產品與工廠兩個物件,其中產品是是乙個個具體的物件,而工廠負責生產這些產品。例如現在我們的需求是有兩個食品要在食品廠加工。兩個食品分別叫做麵包和巧克力,要在食品廠加工。通過需求分析出應該有如下幾個類,麵包類 巧克力類 食品加工廠類。由於麵...