摘要:但這樣的話就違背了開發封閉原則而工廠模式就可以解決這一個問題先看代碼雷鋒類掃地洗衣買米而現在有學生類和社會人士類要實現這個方法接下來就是重點了雷鋒工廠學生工廠和社會人士的工廠在方法中現在就可以看出來差距簡單工廠工廠模式
工廠模式,之前講述了簡單工廠模式。兩者是什么區別,暫時。先來講解一下工廠模式
工廠模式主要是通過接口來實現產品的制作
在main方法創建對象的時候得到這個接口的抽象方法,而這個抽象方法就是為實現這個共有功能而存在
做一個比喻,(大話設計模式里面的)
雷鋒精神是一個共有的功能,而學習雷鋒現在存在兩種人,學生和社會人士。那么該怎么樣實現呢
大家可以按照之前學習的簡單工廠模式寫一下,你會發現如果再加一種人的話就要改變switch,在里面添加。但這樣的話就違背了
開發-封閉原則
而工廠模式就可以解決這一個問題
先看代碼
雷鋒類
public class LeiFeng {
? ?public void Sweep(){
? ? ? ?System.out.println("掃地");
? }
? ?public void Wash(){
? ? ? ?System.out.println("洗衣");
? }
? ?public void BuyRice(){
? ? ? ?System.out.println("買米");
? }
}
而現在有學生類和社會人士類要實現這個方法
public class Undergraduate extends LeiFeng {
}
public class Volunteer extends LeiFeng {
}
接下來就是重點了
雷鋒工廠
interface IFactory {
? ?LeiFeng CreateLeiFeng();
}
學生工廠和社會人士的工廠
public class UndergrouateFactory implements IFactory {
? ?@Override
? ?public LeiFeng CreateLeiFeng() {
? ? ? ?return new Undergraduate();
? }
}
public class VolunteerFactory implements IFactory{
? ?@Override
? ?public LeiFeng CreateLeiFeng() {
? ? ? ?return new Volunteer();
? }
}
在main方法中
IFactory iFactory = new VolunteerFactory();
? ? ? ?LeiFeng student = iFactory.CreateLeiFeng();
? ? ? ?student.BuyRice();
? ? ? ?student.Sweep();
? ? ? ?student.Wash();
? ? ? ?IFactory iFactory1 = new UndergrouateFactory();
? ? ? ?LeiFeng leiFeng = iFactory1.CreateLeiFeng();
? ? ? ?leiFeng.BuyRice();
? ? ? ?leiFeng.Sweep();
? ? ? ?leiFeng.Wash();
現在就可以看出來差距
簡單工廠
工廠模式
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70951.html
摘要:基于工廠角色和產品角色的多態性設計是工廠方法模式的關鍵。工廠方法模式之所以又被稱為多態工廠模式,是因為所有的具體工廠類都具有同一抽象父類。工廠方法模式總結工廠方法模式是簡單工廠模式的進一步抽象和推廣。 JavaScript工廠模式 首先需要說一下工廠模式。工廠模式根據抽象程度的不同分為三種 簡單工廠模式 工廠方法模式 抽象工廠模式 1.簡單工廠模式 簡單工廠模式:又稱為靜態工廠方法...
摘要:二簡單工廠模式組成工廠類工廠模式的核心,通過調用它來實現其他類的功能。三工廠方法模式利用工廠方法模式可以有效解決簡單工廠模式破壞開閉原則的問題。 一、概念 1、工廠模式分為三類:(1)簡單工廠模式:一個工廠創建所有產品(2)工廠方法模式:一個工廠方法創建一個產品(3)抽象工廠模式:一個工廠方法創建一類產品 2、創建型模式這種模式是指將實例的創建和使用分離開來,隱藏類實例的創建細節,外界...
摘要:簡單工廠,工廠模式和抽象工廠。不要認為簡單工廠是用就覺得一無是處,也不要覺得抽象工廠比較高大上就到處套。 工廠模式,實際上也會根據業務情景不同會有不同的實現方式。一般分為3種。簡單工廠,工廠模式和抽象工廠。顧名思義,這三種從簡單到抽象,名稱越來越高大上,實現方式肯定是越來越復雜 結論1:三種工廠的實現越來越復雜 簡單工廠 public class Factory { // 定義...
摘要:主要詳解簡單工廠模式到抽象工廠模式的演變。抽象工廠模式當一個類別的產品還有多個系列區分時,為了按系列生產商品,使用抽象工廠區分。 主要詳解簡單工廠模式到抽象工廠模式的演變。 簡單工廠模式 即靜態工廠模式1.將對象的創建和使用分開;2.將生產過程集中,便于集中管理;3.當需要創建的對象類有變動時,就不用在所有new 的地方修改了,直接修改工廠類即可; /** * 簡單工廠模式 ---...
摘要:我認為按書上的順序比較好理解因為簡單靜態工廠模式是在工廠方法模式上縮減,抽象工廠模式是在工廠方法模式上再增強。所以我就先講工廠方法模式了。抽象工廠模式抽象工廠模式就比較復雜了,我們一般的應用都寫不到。 前言 只有光頭才能變強 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡單啦 單例模式你會幾種寫法? 昨天寫了單例模式了,今天是時候寫工廠模式啦~ 工廠模式我個人認為其實比...
閱讀 5036·2021-07-25 21:37
閱讀 682·2019-08-30 15:53
閱讀 3350·2019-08-29 18:47
閱讀 687·2019-08-29 15:39
閱讀 2130·2019-08-29 13:12
閱讀 1798·2019-08-29 12:43
閱讀 2978·2019-08-26 11:52
閱讀 1890·2019-08-26 10:15