簡單工廠設計模式主要應用了黎克特制代換原則,即子類可以替換其父類。介面可以被看做是父類,由於子類實現了介面當中的方法,因此可以將實現介面的具體例項看做是介面型別的物件。這樣為程式提供了良好的可維護性和可擴充套件性。
簡單工廠設計模式分為三種
普通:建立工廠類,返回實現了同乙個介面的具體的例項。工廠類的方法返回的是介面型別,但是返回值根據不同的引數決定返回具體哪些例項。
我們以傳送郵件和簡訊為例,兩個類都實現了send方法。可以建立乙個工廠,根據不同的傳送請求返回不同的具體例項。再根據這些例項進行相應的操作。具體**如下:
sender介面:
/**
* @author 123
* @create 2019/5/1
*/public inte***ce sender
mailsender類:
/**
* @author 123
* @create 2019/5/2
*/public class mailsender implements sender
}
smssender類:
/**
* @author 123
* @create 2019/5/2
*/public class smssender implements sender
}
factory類:
/**
* @author 123
* @create 2019/5/2
*/public class factory }}
測試類:
/**
* @author 123
* @create 2019/5/2
*/public class factorytest
}
執行結果:
傳送簡訊
多個方法:是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件
工廠類**:
/**
* @author 123
* @create 2019/5/2
*/public class factory
public sender producesms()
}
測試類**:/**
* @author 123
* @create 2019/5/2
*/public class factorytest
}
執行結果:傳送電子郵件
多個靜態方法:工廠當中的所有方法均是靜態的,無需建立物件,直接呼叫即可。
工廠類**:
/**
* @author 123
* @create 2019/5/2
*/public class factory
public static sender producesms()
}
測試類**:
/**
* @author 123
* @create 2019/5/2
*/public class factorytest
}
執行結果:
傳送電子郵件
總結:工廠是用來生產產品的(物件),當我們需要建立某些物件的時候,有時卻不適宜直接使用new關鍵字建立(多型)。而把建立物件的工作交給工廠去處理。上面的第一種,我們通過判斷引數來建立物件。它的乙個弊端是當引數不符合要求時就無法建立所需的物件,第二種和第三種是對第一種的改進。第三種使用靜態的方式省去了建立工廠物件的麻煩,直接通過類去呼叫即可。因此我們經常使用第三種的方式去建立物件。 設計模式 工廠模式(簡單工廠)
一 簡單工廠 定義 簡單工廠模式 factory pattern 屬於類的創新型模式,又叫靜態工廠方法模式 static factorymethod pattern 是通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。特點 工廠類直接實現,乙個產品介面,乙個工廠類可以產生多...
簡單工廠設計模式與工廠設計模式
工廠設計模式的目的 降低呼叫者和實現者之間的耦合度。當需求發生變化 增加或改變 時,不改變原有 的結構。1.簡單工廠設計模式 優點 降低了呼叫者和實現者之間的耦合度。當引入乙個新的實現型別時,只需要增加乙個實現類,然後修改工廠類即可。缺點 只適用於層次結構較為簡單的情況。如果可能的實現型別很多,工廠...
設計模式 簡單工廠設計模式
請用任意一種物件導向語言實現計算器控制台程式,要求輸入兩個數和運算符號,得到結果。operation運算類 public class operation set public double numberb set public virtual double getresult 加減乘除類 using...