網(wǎng)站建設(shè)公司網(wǎng)站模版網(wǎng)頁代碼
工廠模式實現(xiàn)
- 定義
- 例子
- UML類圖理解
- Java代碼實現(xiàn)
- 總結(jié)
定義
工廠方法模式定義了一個接口用于創(chuàng)建對象,該模式由子類決定實例化哪個工廠類。該模式把類的實例化推遲到了子類。
例子
通過一個公共的類方法來管理畫圖對象的創(chuàng)建。
UML類圖理解
Java代碼實現(xiàn)
- 定義接口類 - 定義所有圖形的接口 他們有一個公共的方法 draw用于繪制圖形
public interface Shape {void draw();
}
- 通過接口類實現(xiàn)Circle和Rectangle類
public class Rectangle implements Shape {@Overridepublic void draw() {System.out.println("Rectangle");}
}
- 實現(xiàn)工廠類,工廠類中實現(xiàn)一個可以根據(jù)參數(shù)控制生成的方法
public class ShapeFactory {// 根據(jù)參數(shù)判斷生成要實例化哪個類public Shape getShape(String shapeType) {if (shapeType.equalsIgnoreCase("rectangle")) {return new Rectangle();} else if (shapeType.equalsIgnoreCase("square")) {return new Circle();}return null;}
}
- 在具體的業(yè)務(wù)中使用
public class FactoryPatternDemo {public static void main(String[] args) {// 使用工廠類ShapeFactory shapeFactory = new ShapeFactory();// 通過參數(shù)決定實例化哪個類 在子類中實例化Shape shape = shapeFactory.getShape("rectangle");System.out.println(shape);shape = shapeFactory.getShape("square");System.out.println(shape);}
}
總結(jié)
一類具有相同特征的產(chǎn)品,比如圖形等,可以使用一個工廠類來選擇性的將他們實例化。