您好,登錄后才能下訂單哦!
這篇“Java工廠設計模式的代碼怎么寫”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java工廠設計模式的代碼怎么寫”文章吧。
實現方法
我們將創建一個Shape接口和實現Shape接口的具體類。一個工廠類ShapeFactory會在下一步中定義。
FactoryPatternDemo這是一個演示類,將使用ShapeFactory來獲取一個Shape對象。它會將信息(CIRCLE/RECTANGLE/SQUARE)傳遞給ShapeFactory以獲取所需的對象類型。
實現工廠模式的結構如下圖所示-
java-61.jpg
第1步
創建一個接口-
Shape.java
publicinterfaceShape{
voiddraw();
}
第2步
創建實現相同接口的具體類。如下所示幾個類-
Rectangle.java
publicclassRectangleimplementsShape{
@Override
publicvoiddraw(){
System.out.println("InsideRectangle::draw()method.");
}
}
Square.java
publicclassSquareimplementsShape{
@Override
publicvoiddraw(){
System.out.println("InsideSquare::draw()method.");
}
}
Circle.java
publicclassCircleimplementsShape{
@Override
publicvoiddraw(){
System.out.println("InsideCircle::draw()method.");
}
}
第3步
創建工廠根據給定的信息生成具體類的對象。
ShapeFactory.java
publicclassShapeFactory{
//usegetShapemethodtogetobjectoftypeshape
publicShapegetShape(StringshapeType){
if(shapeType==null){
returnnull;
}
if(shapeType.equalsIgnoreCase("CIRCLE")){
returnnewCircle();
}elseif(shapeType.equalsIgnoreCase("RECTANGLE")){
returnnewRectangle();
}elseif(shapeType.equalsIgnoreCase("SQUARE")){
returnnewSquare();
}
returnnull;
}
}
第4步
使用工廠通過傳遞類型等信息來獲取具體類的對象。
FactoryPatternDemo.java
publicclassFactoryPatternDemo{
publicstaticvoidmain(String[]args){
ShapeFactoryshapeFactory=newShapeFactory();
//getanobjectofCircleandcallitsdrawmethod.
Shapeshape1=shapeFactory.getShape("CIRCLE");
//calldrawmethodofCircle
shape1.draw();
//getanobjectofRectangleandcallitsdrawmethod.
Shapeshape2=shapeFactory.getShape("RECTANGLE");
//calldrawmethodofRectangle
shape2.draw();
//getanobjectofSquareandcallitsdrawmethod.
Shapeshape3=shapeFactory.getShape("SQUARE");
//calldrawmethodofcircle
shape3.draw();
}
}
第5步
驗證輸出結果如下-
InsideCircle::draw()method.
InsideRectangle::draw()method.
InsideSquare::draw()method.
以上就是關于“Java工廠設計模式的代碼怎么寫”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。