抽象工廠模式(1),Java自學

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

抽象 模式 java

Square.java


public class Square implements Shape {
@Override
public void draw() {
System.out.println("Inside Square::draw() method.");
}
}

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

Circle.java


public class Circle implements Shape {
@Override
public void draw() {
System.out.println("Inside Circle::draw() method.");
}
}

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

[](

)步驟 3

為顏色創建一個接口。

Color.java


public interface Color {
void fill();
}

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

[](

)步驟4

創建實現接口的實體類。

Red.java


public class Red implements Color {
@Override
public void fill() {
System.out.println("Inside Red::fille() method.");
}
}

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

Green.java


public class Green implements Color {
@Override
public void fill() {
System.out.println("Inside Green::fille() method.");
}
}

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

Blue.java


public class Blue implements Color {
@Override
public void fill() {
System.out.println("Inside Blue::fille() method.");
}
}

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

[](

)步驟 5

為 Color 和 Shape 對象創建抽象類來獲取工廠。

AbstractFactory.java


public abstract class AbstractFactory {
abstract Shape getShape(String shape);
abstract Color getColor(String color);
}

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

[](

)步驟 6

創建擴展了 AbstractFactory 的工廠類,基於給定的信息生成實體類的對象。

ShapeFactory.java


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;
}
}

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.

ColorFactory.java


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;
}
# **最後**
**[CodeChina開源項目:【一線大廠Java面試題解析+核心總結學習筆記+最新講解視頻】](https://ali1024.coding.net/public/P7/Java/git)**
![抽象工廠模式(1),Java自學_程序員](https://s5.51cto.com/images/20210918/1631912074529259.jpg)

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
版权声明:本文为[程序小茉莉]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/09/20210918050805083b.html