1.Car.interface
package SimpleFactory;
/**
* 汽车产品
* 相当于Product
*/
public interface Car {
public void name();
}
2.BigCar.java
package SimpleFactory;
/**
* 大汽车
*/
public class BigCar implements Car{
public void name() {
System.out.println("BigCar");
}
}
3.SmallCar.java
package SimpleFactory;
/**
* 小汽车
*/
public class SmallCar implements Car{
public void name() {
System.out.println("SmallCar");
}
}
4.CarFactory.java
package Factory;
/**
* 车工厂
*/
public abstract class CarFactory {
abstract Car produceCar();
}
6.BigCarFactory.java
package Factory;
/**
* 大型汽车工厂
*/
public class BigCarFactory extends CarFactory{
public Car produceCar() {
return new BigCar();
}
}
7.SmallCarFactory.java
package Factory;
/**
* 小型汽车工厂
*/
public class SmallCarFactory extends CarFactory{
public Car produceCar() {
return new SmallCar();
}
}
8.Test.java
package Factory;
/**
* 测试类
*/
public class Test {
public static void main(String[] args) {
Car newBigCar = new BigCarFactory().produceCar();
newBigCar.name();
Car newSmallCar = new SmallCarFactory().produceCar();
newSmallCar.name();
}
}