Moveable.java:
public interface Moveable
{
void Run();
}
VehicleFactory.java:
public abstract class VehicleFactory
{
abstract Moveable create();
}
car.java:
public class Car implements Moveable
{
private static Car car=new Car();
public Car()
{
}
public void Run()
{
System.out.println("冒着烟奔跑中car。。。。。。");
}
/**
* 静态工厂方法
* @return
*/
public static Car getInstance()
{
return car;
}
}
carFactory.java;
public class CarFactory extends VehicleFactory
{
@Override
Moveable create()
{
return new Car();
}
}
Plane.java:
public class Plane implements Moveable
{
@Override
public void Run()
{
System.out.println("扇着翅膀前进中plane......");
}
}
PlaneFactory.java:
public class PlaneFactory extends VehicleFactory
{
@Override
Moveable create()
{
return new Plane();
}
}
Test.java;
package com.bjsxt.dp.factory;
public class Test
{
public static void main(String[] args)
{
// Car car=Car.getInstance();
// Car c2=Car.getInstance();
// if(car==c2)
// {
// System.out.println("same car");
// }
// car.Run();
VehicleFactory factory=new BoomFactory();//new PlaneFactory()//new CarFactory();
Moveable m=factory.create();
m.Run();
}
}