① 什麼是工廠模式有沒有用工廠模式解決實際問題
工廠模式的思想主要為:多個類似的子類繼承同一個父類,對其父類中的變數進行操作;工廠類負責判斷、控制哪個子類被執行,而工廠類調用子類完成後,返回的結果是該子類的父類,該父類中的變數已經被操作過了,訪問該父類,得到我們想要的結果
例如:
public interface Fruit {
void grow();//生長
void harvest();//收獲
void plant();//種植
}
public class Apple implements Fruit{
private int treeAge;
public void grow() {
System.out.println("Apple is growing");
}
public void harvest() {
System.out.println("Apple has been harvested");
}
public void plant() {
System.out.println("Apple has been planted");
}
public int getTreeAge()
{
return treeAge;
}
public void setTreeAge(int age)
{
this.treeAge=age;
}
}
public class Grape implements Fruit {
private boolean seedless;
public void grow() {
System.out.println("Apple is growing");
}
public void harvest() {
System.out.println("Apple has been harvested");
}
public void plant() {
System.out.println("Apple has been planted");
}
public boolean getSeedless()
{
return seedless;
}
public void setSeedless(boolean seed)
{
this.seedless=seed;
}
}
public class FruitGardener {
public static Fruit factory(String which) throws BadFruitException
{
if(which.equalsIgnoreCase("apple"))
{
return new Apple();
}
else if(which.equalsIgnoreCase("grape"))
{
return new Grape();
}
else
{
throw new BadFruitException("Bad Fruit request");
}
}
}
public class BadFruitException extends Exception{
public BadFruitException(String msg)
{
super(msg);
}
}
public static void main(String[] args)
{
try
{
FruitGardener.factory("apple");
FruitGardener.factory("grape");
}
catch(BadFruitException e)
{
System.out.println(e);
}
}
}
② 工廠模式是什麼
工廠模式具體包括了簡單工廠、工廠方法、抽象工廠,它們是按照從簡單到復雜的順序排列的,屬於設計模式中的創建型,其中簡單工廠並不屬於GOF的23中模式。但是它是理解其它的工廠模式的一個很好的基礎,所以很多人在講述設計模式的時候會提到簡單工廠模式。創建型模式關注的是對象的創建,創建型模式將創建對象的過程進行了抽象,也可以理解為將創建對象的過程進行了封裝,作為客戶程序僅僅需要去使用對象,而不再關心創建對象過程中的邏輯。
③ 誰能通俗說一下什麼是工廠模式嗎
假設有一個工廠是生產玩具的,你現在需要玩具,你就跟工廠說給我生產一個小熊,然後工廠就給了你一個小熊玩具,如果你說給我生產一個大象,工廠就給了你一個大象玩具,用代碼來表示
class Factory{
public Toy getToys(String type){
if("xiaoxiong"){
return new XiaoXiong();
}else if("daxiang"){
return new Daxiang();
}
}
}
calss Toy{
}
class XiaoXiong extends Toy{
}
class Daxiang extends Toy{
}
void main(){
//先獲取到工廠實例,也就是你現在有一個工廠了
Factory f = new Factory();
//讓工廠生產一個小熊對象
XIaoXIong xiaoxiong = f.getToys("xiaoxiong");
}
這就是簡單工廠模式,把你想要生產的實例對象告訴工廠,然後工廠給你返回一個實例對象
如果想知道更多看下面的
blog.csdn.net/lovelion/article/details/9300337
④ 大家知道工廠模式是什麼嗎
由於不同的顯示器廠商對一些功能的定義也略有不同,比如一些不常用的失真,線性失真,會聚,色純,加速極電壓等等項目,當顯示器有一些軟體故障的時候,可以藉助它在不維修電路的基礎上來解決問題。這里所說的軟體故障,指的是像亮度,色彩,色純,會聚,失真,線型失真,位置尺寸等,如果用戶的顯示器不亮了,或者是抖動,或者是由電路元件引起的故障,那是工廠模式解決不了的對工廠模式的不適當操作會有什麼後果?由於不同廠商的工廠模式內置的功能不同。有的顯示器工廠模式只是比普通功能多出一點而已,如果調節不當只是影響顯示效果。但有一部分廠商的工廠模式功能相當豐富,不慎的誤操作則有可能對顯示器產生很大的影響,比如影響到顯示器的部分功能甚至導致顯示器無法正常工作。
所以我們勸大家在使用工廠模式時要慎重,在不清楚某個功能之前,最好不要亂調,由此而造成的後果我們不負任何責任。由於不同的顯示器廠商對一些功能的定義也略有不同,比如一些不常用的失真,線性失真,會聚,色純,加速極電壓等等項目,當顯示器有一些軟體故障的時候,可以藉助它在不維修電路的基礎上來解決問題。這里所說的軟體故障,指的是像亮度,色彩,色純,會聚,失真,線型失真,位置尺寸等,如果用戶的顯示器不亮了,或者是抖動,或者是由電路元件引起的故障,那是工廠模式解決不了的。
⑤ 誰能幫簡單介紹一下工廠模式呢
你好,很高興能解答你的問題。
首先工廠模式是軟體開發中最常用的設計模式之一。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。
在工廠模式中,我們在創建對象時不會對客戶端暴露創建邏輯,並且是通過使用一個共同的介面來指向新創建的對象。
工廠模式主要的意圖是:定義一個創建對象的介面,讓其子類自己決定實例化哪一個工廠類,工廠模式使其創建過程延遲到子類進行。
案列1:您需要一輛汽車,可以直接從工廠裡面提貨,而不用去管這輛汽車是怎麼做出來的,以及這個汽車裡面的具體實現。 2、Hibernate 換資料庫只需換方言和驅動就可以。
優點:1、一個調用者想創建一個對象,只要知道其名稱就可以了。 2、擴展性高,如果想增加一個產品,只要擴展一個工廠類就可以。 3、屏蔽產品的具體實現,調用者只關心產品的介面。
缺點:每次增加一個產品時,都需要增加一個具體類和對象實現工廠,使得系統中類的個數成倍增加,在一定程度上增加了系統的復雜度,同時也增加了系統具體類的依賴。這並不是什麼好事。
案例2:日誌記錄器:記錄可能記錄到本地硬碟、系統事件、遠程伺服器等,用戶可以選擇記錄日誌到什麼地方。 2、資料庫訪問,當用戶不知道最後系統採用哪一類資料庫,以及資料庫可能有變化時。 3、設計一個連接伺服器的框架,需要三個協議,"POP3"、"IMAP"、"HTTP",可以把這三個作為產品類,共同實現一個介面。
注意事項:作為一種創建類模式,在任何需要生成復雜對象的地方,都可以使用工廠方法模式。有一點需要注意的地方就是復雜對象適合使用工廠模式,而簡單對象,特別是只需要通過 new 就可以完成創建的對象,無需使用工廠模式。如果使用工廠模式,就需要引入一個工廠類,會增加系統的復雜度。
希望能幫到你,謝謝!
⑥ 什麼是工廠模式
1. OSD(On Screen Display)是顯示器產品中通用的實現人機界面的一個屏幕窗口設計。
2. 用戶模式: 顯示器的使用者通過開放許可權的OSD界面實現對顯示器的功能控制或信息獲取。
3. 工廠模式: 為了方便顯示器的產線生產,特別為生產線設計的OSD界面來對顯示器進行一些重要敏感的參數調整,調整過的值不希望被用戶更改,這種操作環境工廠通常是以組合鍵(Hot Key)方式進入方式才能進入,普通用戶不知道訣竅不容易進入這種操作環境。
⑦ 手機工廠模式是什麼
工廠模式即工程模式。
所謂工程模式,其實是指利用手機檢測基站各種指標參數所處的一種工作模式。各家行動電話製造公司均有專門的開啟工程模式的產品出售,它具備了普通用戶使用的行動電話所有功能,同時可用做檢測行動電話所處位置的包括場強、距離基站距離、手機所佔頻道號碼以及目前所使用的臨時號碼等等信息,因此價格往往高出普通行動電話許多。但是只要將我們普通行動電話做些電路和程序上的改動,就可以使其開啟工程模式從而身價大增。還是讓我們來看看手機的工程模式具體能做些什麼吧。
二.工程模式用來干什麼?
1. 分析接收信號狀況
我們經常遇到同一品牌不同型號的兩部手機或是不同品牌的兩部手機在同一地點,信號強度顯示不一樣。有的用戶覺得格數並不重要,只要能正常撥打和接收就行。不錯,單憑信號的格數來判斷手機的收發質量是不準確的,但如果打開手機工程模式,接收信號的狀況就從格數顯示為數值了,收信強弱無所遁形。目前摩托羅拉、諾基亞、愛立信都能比較簡單地開啟工程模式。
2. 可知基站編號
除上述反映收信狀況時會用到基站ID外,如基站不小心「掛掉」時,可以通知網路運營商派人處理。
3. 可知基站距離
開啟手機工程模式的用戶如果看到附近的基站都離自己經常活動的范圍很遠,信號不強,通話質量欠佳,就可以反映到客戶服務部門去,幫助他們改善網路狀況。
4. 免除網路塞車之苦
行動電話一般都是選擇最近、最強的基站注冊,並停留在此頻道。能開啟工程模式的、且有鎖頻功能的手機,當你塞機時,可以用鎖頻功能強行手機向別的基站注冊,並使用,可免去頻道「塞車」之苦。
可見,用戶對掌握手機「動態」,獲得相當多的資訊以及對網路運營商的監督大有幫助,尤其是中國的GSM網路運營商在「獨此兩家,別無分店」的市場環境下。開啟工種模式不光是玩喔!
應該注意的幾點
1.開啟手機工程模式不能增強手機收信能力,只能閱讀。
2.工程模式要改機,改機不等於開啟工程模式。
3.沒有把握請勿開啟工程模式。
4.開啟工程模式後,會導致保修失效。
⑧ java中的工廠模式是什麼意思
工廠模式簡單的講就是用工廠方法代替了new的操作,
在通俗點就是說,你new一個對象的時候直接調用工廠方法就行了,
在編程時,需要定義一個工廠介面,由不同的的子類去實現,再定一個具體工廠類,定義一個產生實例的方法,我們通過這個方法來獲得實例就行了,
⑨ 工廠模式是什麼
只有手機才具有工廠模式,工廠模式就是說手機剛出場的時候,什麼都沒有安裝的初始狀態模式
⑩ 編程中所說的 工廠模式 是什麼意思
您好,
工廠模式基本上是最常用的設計模式之一,設計模式通俗的來說就是「做某件事的通用的方法」,這些方法都是被廣泛使用、經過長時間「考驗」的,對於解決某個特定的問題有非常好的效果。
設計模式基本上到了「軟體設計」的層面,它與具體的程序設計語言無關,也沒有實現,只是包含了一個大致的架構,它是一種思想。
如果您想學習設計模式,我推薦兩本書:《設計模式:可復用面向對象軟體的基礎》和《設計模式精解》,書很枯燥,但絕對是程序員必讀教材。
工廠模式我大致解釋一下,比如寫一個word那樣的程序,它可以打開doc、rtf、txt等好幾種文件格式,而對於這些文件的處理方法是不同的,比如txt就不能保存文字顏色字體之類的信息,那麼我可能這樣設計:
word主程序,一個類Application,它有一個虛方法(或抽象方法,不過C#中抽象方法只能在抽象類里)叫OpenFile,用來打開指定的文件,然後返回一個Doucument類的實例,這個類可以直接把它的內容顯示在屏幕上,word處理的主體是這個類。這個Application類還有很多方法比如關閉列印之類的。
然後從Application類派生出一個子類TxtApplication,父類中OpenFile是虛方法,沒有實現,在子類中重寫這個方法,打開Txt文檔,讀取txt文件,然後返回一個Document類。
然後再從Application里派生一個子類RichTxtApplication,也重寫OpenFile,它打開rtf文檔,從裡面讀取相應的文檔和文檔的格式信息,然後也返回一個Document類。
最後,根據一定的策略(比如用戶要打開的文件的擴展名是「txt」,就實例化一個txtApplication,然後調用它的OpenFile方法獲得Document;如果擴展名是「rtf」,就實例化一個rtfApplication,調用它的OpenFile方法獲得Document)。
這樣,Application類中的OpenFile方法就叫做工廠方法,這種「一個類希望由它的子類指定它所創建的對象」的方法就是工廠模式。
這樣說可能太抽象了,設計模式不是很容易就能說清楚的,建議您看看那兩本書。