一、概述
1.目标:要控制任意类型交通工具的生产模式
2.目标有两层意思(1)任意类型 (2)生产模式,所以对应的,要这两个层面上抽象(Movable,VehicleFactory),利用接口,实现多态
二、类结构
1.Interface Movable.java
2.Car.java
3.Plane.java
4.Interface VehicleFactory.java
5.CarFactory.java
6.PlaneFactory.java
三、代码
1.Movable.java
public interface Movable {
void run();
}
2.Car.java
public class Car implements Movable {public Car() {
}public void run() {
System.out.println("Car running...............");
}}
3.Plane.java
public class Plane implements Movable {@Override
public void run() {
System.out.println("飞机飞翔中。。。。");
}}
4.VehicleFactory.java
public interface VehicleFactory {
Movable create();
}
5.CarFactory.java
public class CarFactory implements VehicleFactory {private static Car car = new Car();
@Override
public Movable create() {
return car;
}}
6.PlaneFactory.java
public class PlaneFactory implements VehicleFactory {private static Plane plane = new Plane();
@Override
public Movable create() {
return plane;
}}
7.Test.java
public class Test {@org.junit.Test
public void test() {
VehicleFactory factory = new CarFactory();
Movable m1 = factory.create();
m1.run();Movable m2 = factory.create();
System.out.println(m1 == m2);
System.out.println(m1.equals(m2));System.out.println("******************************");factory = new PlaneFactory();
m1 = factory.create();
m1.run();m2 = factory.create();
System.out.println(m1 == m2);
System.out.println(m1.equals(m2));
}
}
8.测试结果