[工厂模式]JAVA设计模式 – 工厂模式的案例

来源:互联网 发布:阿里云 服务器 使用 编辑:程序博客网 时间:2024/04/30 01:10
工厂模式,比较系统化的说就是一种实例化对象模式,用工厂类里面的方法代替了一般用的new操作的一种模式。而很明显,它就是用来根据需求来创建不同对象的。。。
而工厂模式,分为三部分,一部分是产品父类,包括了产品的基本属性和函数,一部分是产品自身,包括自身特定属性,还有一部分是工厂,用来创建对象的类,或者几个类!
以下就来简单说明下工厂模式的介绍:
1.简单的工厂模式:TurckCar,BigbusCar, MiniCar, SportsCar同时继承Car类,通过工厂类里面的factory方法,传递的参数来确定返回的是那种类型
public Car factory(String carType) throws Exception {
if (carType.equals(“Truck”)) return new TruckCar();
if (carType.equals(“Bigbus”)) return new BigbusCar();
if (carType.equals(“Mini”)) return new MiniCar();
if (carType.equals(“Sports”)) return new SportsCar();
throw new Exception(“没有这种产品”);
2.一般工厂模式:一般工厂模式和简单工厂模式差别在于,一个工厂只生产负责生产一系列的汽车,例如拖拉机工厂和小汽车工厂
而其中生产对象的工厂类,都实现工厂类的接口
public class SportsCarFactory implements Factory {
@Override
public Car create() {
return new SportsCar();
}
}
public class BigbusFactory implements Factory {
@Override
public Car create() {
return new BigbusCar();
}
}
3.抽象工厂模式,和一般工厂模式的区别在于抽象工厂的工厂类对象集合了所有需要生产对象的方法(举例,这个工厂可以生产这么多种类的车,所以就提供这么多个接口出来,如果是工厂的话,就只需要实现这几个接口来生产对应的汽车就好了)
public class CarFactory implements Factory {
@Override
public TruckCar createTruckCar() {
return new TruckCar();
}@Override
public BigbusCar createBigBusCar() {
return new BigbusCar();
}

@Override
public MiniCar createMiniCar() {
return new MiniCar();
}

@Override
public SportsCar createSportsCar() {
return new SportsCar();
}
}

0 0