抽象工廠模式,分析Java未來幾年的發展前景

程序小茉莉 2021-09-18 05:08:05 阅读数:673

抽象 模式 分析 java 前景

}


#### [](
)步驟 6
創建擴展了 AbstractFactory 的工廠類,基於給定的信息生成實體類的對象。
_ShapeFactory.java_

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

public class ShapeFactory extends AbstractFactory {

@Override
Shape getShape(String shape) {
if (shape == null) {
return null;
}
shape = shape.toLowerCase();
switch (shape) {
case "circle":
return new Circle();
case "rectangle":
return new Rectangle();
case "square":
return new Square();
default:
return null;
}
}
@Override
Color getColor(String color) {
return null;
}

}


_ColorFactory.java_

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

public class ColorFactory extends AbstractFactory {

@Override
Shape getShape(String shape) {
return null;
}
@Override
Color getColor(String color) {
if (color == null) {
return null;
}
color = color.toLowerCase();
switch (color) {
case "red":
return new Red();
case "blue":
return new Blue();
case "green":
return new Green();
default:
return null;
}
}

}


#### [](
)步驟 7
創建一個工廠創造器/生成器類,通過傳遞形狀或顏色信息來獲取工廠。
_FactoryProducer.java_

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

public class FactoryProducer {

public static AbstractFactory getFactory(String choice) {
if (choice == null) {
return null;
}
if ("shape".equalsIgnoreCase(choice)) {
return new ShapeFactory();
} else if ("color".equalsIgnoreCase(choice)) {
return new ColorFactory();
} else {
return null;
}
}

}


#### [](
)步驟 8
使用 FactoryProducer 來獲取 AbstractFactory,通過傳遞類型信息來獲取實體類的對象。
_AbstractFactoryPatternDemo.java_

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

public class AbstractFactoryDemo {

public static void main(String[] args) {
//獲取形狀工廠
AbstractFactory shapeFactory = FactoryProducer.getFactory("SHAPE");
//獲取形狀為 Circle 的對象
Shape shape1 = shapeFactory.getShape("CIRCLE");
//調用 Circle 的 draw 方法
shape1.draw();
//獲取形狀為 Rectangle 的對象
Shape shape2 = shapeFactory.getShape("RECTANGLE");
//調用 Rectangle 的 draw 方法
shape2.draw();
//獲取形狀為 Square 的對象
Shape shape3 = shapeFactory.getShape("SQUARE");
shape3.draw();
//獲取顏色工廠
AbstractFactory colorFactory = FactoryProducer.getFactory("COLOR");
//獲取顏色為 Red 的對象
Color color1 = colorFactory.getColor("RED");
//調用 Red 的 fill 方法
color1.fill();
//獲取顏色為 Green 的對象
Color color2 = colorFactory.getColor("Green");
//調用 Green 的 fill 方法
color2.fill();
//獲取顏色為 Blue 的對象
Color color3 = colorFactory.getColor("BLUE");
//調用 Blue 的 fill 方法
color3.fill();
}

}


#### [](
)步驟 9
# 最後
各比特讀者,由於本篇幅度過長,為了避免影響閱讀體驗,下面我就大概概括了整理了
**[CodeChina開源項目:【一線大廠Java面試題解析+核心總結學習筆記+最新講解視頻】](https://ali1024.coding.net/public/P7/Java/git)**
![抽象工廠模式,分析Java未來幾年的發展前景_程序員](https://s4.51cto.com/images/20210918/1631912170751382.jpg)
![抽象工廠模式,分析Java未來幾年的發展前景_後端_02](https://s5.51cto.com/images/20210918/1631912170727534.jpg)
![抽象工廠模式,分析Java未來幾年的發展前景_後端_03](https://s6.51cto.com/images/20210918/1631912170246225.jpg)
![抽象工廠模式,分析Java未來幾年的發展前景_Java_04](https://s9.51cto.com/images/20210918/1631912170279554.jpg)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
版权声明:本文为[程序小茉莉]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/09/20210918050805104r.html