如果有個人想穿一雙新鞋。他可以選擇自己做一雙鞋, 也可以去花錢買鞋。自己做鞋子樣式、品牌等都不會統一,沒有一定的標準,而且使用者得到鞋子的需要知道製作鞋子的全過程。但是,如果去**去買,使用者不需要知道製作鞋子的過程,再眾多鞋子中快速的選擇一雙適合自己的就好了。
下面用直接上**表示製鞋的不同模式的過程
//先定乙個什麼叫做鞋子的標準,所以寫了乙個叫shoes的介面。
public inte***ce shoes
//製造耐克的過程
public class nike implements shoes
}//製造李寧鞋的過程
public class lining implements shoes
}//使用者想穿鞋
public class test
}
//有乙個工廠製作 耐克 和李寧的鞋子。
public class easyshoesfactory else if("nike".equals(shoesname)) else
}}//使用者去工廠買自己想要的鞋子
public class test
}
** 該模式相當於使用者買鞋,直接去專賣店去買。不再是去乙個工廠裡,帶著自己的需求去諮詢工廠能否生產 **
/**
各個專賣店都有乙個基礎的標識,那就是你能在我店裡可以買到鞋子。所以每個專賣店都有getshoes()方法
*/public inte***ce shoesfactory
//耐克專賣店
public class nikefactory implements shoesfactory
}//李寧專賣店
public class liningfactory implements shoesfactory
}//使用者去專賣店買鞋
public static void main(string args)
/**
* 將工廠方法的工廠介面改變為抽象類,是因為工廠有一定的建立規則,抽象類可以對這些工廠進行標準化的統一管理
* */
public abstract class shoesabstractfactory
/** * 這裡就相當於各個品牌的**商, 在這裡可以買到不通品牌的產品
* * 再獲取的時候不是直接new 產品,而是去工廠獲取,這就類似於,去**商提貨*
*/public class saleshoesfactory extends shoesabstractfactory
@override
public shoes getlining()
public static void main(string args)
}
抽象工廠怎麼進行擴充套件呢?
下面是再抽象工廠中增加喬丹產品的過程
/*
* 首先要創造出乙個品牌名
*/public class qiaodan implements shoes }/*
* 生成製作喬丹的成熟工藝,這樣能把產品做出來才好向外推廣
*/public class qiaodanshoesfactory implements makeshoes }}
/** * 這裡就相當於各個品牌的**商, 在這裡可以買到不通品牌的產品
* * 再獲取的時候不是直接new 產品,而是去工廠獲取,這就類似於,去**商提貨*
*/public class saleshoesfactory extends shoesabstractfactory
@override
public shoes getlining()
//**商向外**喬丹
@override
public shoes getqiaodan()
} public static void main(string args)
以上是我對工廠模式的總結。小白上手,請各位大牛勿噴!!! factory工廠模式
1.factory模式 兩個重要的功能 1 定義建立物件的介面,封裝了物件的建立 2 使得具體化類的工作延遲到了子類中。factory模式僅僅侷限於一類類 就是說product是一類,有乙個共同的基類 如果我們要為不同類的類提供 乙個物件建立的介面,那就要用abstractfactory了。我們經常...
工廠模式Factory
工廠方法模式完全符合設計模式原則,降低了物件之間的耦合度,而且,工廠方法模式依賴於抽象的架構,將例項化的任務交由了子類實現.比如你想要出門,每次出行你都要根據天氣情況選擇出行方式,如果下雨天,就開自己的私家車,如果晴天就出門坐公車。那麼這裡可以抽取出乙個基類出來。車的基類 public abstra...
Factory 工廠模式
工廠模式有3種。以下的示例 都省略了建構函式與析構函式。一 簡單工廠模式 簡單工廠模式就是只有乙個工廠,所有的產品都有該工廠生產。每一種產品都有乙個對應的type。當需要某種產品時,將該產品的type傳給工廠,然後工廠即會返回該產品。這樣意味著工廠內部必須針對type作判斷,也就是使用乙個switc...