5
5
public class Test {
6
6
7
7
public static void start () {
8
+ /**
9
+ * 工厂模式由工厂类提供统一的创建对象的方法,省去直接new,而是通过统一方法来创建。
10
+ * 这样的好处就是让对象创建和调用解耦,便于在创建对象时统一干预。
11
+ */
8
12
VehicleFactory vehicleFactory = new VehicleFactory ();
9
13
10
14
// 获取Bus对象,并调用它的 run 方法
@@ -14,19 +18,20 @@ public static void start() {
14
18
// 获取Car对象,并调用它的 run 方法
15
19
Vehicle car = vehicleFactory .getVehicle (VehicleType .CAR );
16
20
// 类型转为Car
17
- Car car1 = (Car )car ;
21
+ Car car1 = (Car ) car ;
18
22
car1 .run ();
19
23
20
24
// 获取Motorcycle对象,并调用它的 run 方法
21
25
// 类型直接转为Motorcycle
22
- Motorcycle motorcycle = (Motorcycle )vehicleFactory .getVehicle (VehicleType .MOTORCYCLE );
26
+ Motorcycle motorcycle = (Motorcycle ) vehicleFactory .getVehicle (VehicleType .MOTORCYCLE );
23
27
motorcycle .run ();
24
28
25
29
// 获取Motorcycle对象,并调用它的 run 方法
26
30
Vehicle van = vehicleFactory .getVehicle (VehicleType .VAN );
27
31
van .run ();
28
32
29
33
}
34
+
30
35
public static void main (String [] args ) {
31
36
System .out .println ("test start:" );
32
37
start ();
@@ -36,16 +41,16 @@ public static void main(String[] args) {
36
41
37
42
/**
38
43
* 测试
39
- jarry@jarrys-MacBook-Pro java % java --version
40
- java 14.0.1 2020-04-14
41
- Java(TM) SE Runtime Environment (build 14.0.1+7)
42
- Java HotSpot(TM) 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)
43
-
44
- jarry@jarrys-MacBook-Pro java % javac test/Test.java
45
- jarry@jarrys-MacBook-Pro java % java test/Test
46
- test start:
47
- Bus::run().
48
- Car::run().
49
- Motorcycle::run().
50
- Van::run().
44
+ * jarry@jarrys-MacBook-Pro java % java --version
45
+ * java 14.0.1 2020-04-14
46
+ * Java(TM) SE Runtime Environment (build 14.0.1+7)
47
+ * Java HotSpot(TM) 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)
48
+ *
49
+ * jarry@jarrys-MacBook-Pro java % javac test/Test.java
50
+ * jarry@jarrys-MacBook-Pro java % java test/Test
51
+ * test start:
52
+ * Bus::run().
53
+ * Car::run().
54
+ * Motorcycle::run().
55
+ * Van::run().
51
56
*/
0 commit comments