简单工厂模式(Simple Factory)

主要类:

1、产品抽象类。

2、工厂类(抽象类,且里面是静态方法)。


运行方式:

用户使用工厂直接调用里面的静态方法可以拿到具体产品,这个具体产品用使用他的抽象类表示。

/**
 * @deprecated(交通工具抽象)
 * @author Administrator
 *
 */
public interface Vehicle {

	public void start();
	
	public void stop();
	
}

/**
 * @deprecated(汽车实现)
 * @author Administrator
 *
 */
public class Cart implements Vehicle {

	public void start() {
		System.out.println("汽车启动");
	}

	public void stop() {
		 System.out.println("汽车停止");
	}

}

飞机作为交通工具的一种,在天上飞行所以除了启动和停止之外还有飞行高度,我们使用flyAltitude来表示高度。

/**
 * @deprecated(飞机类)
 * @author Administrator
 *
 */
public class Plane implements Vehicle {
	/**
	 * 飞行高度
	 */
	private int flyAltitude;

	public void start() {
		System.out.println("飞机启动");
	}

	public void stop() {
		System.out.println("飞机停止");
	}

	public int getFlyAltitude() {
		return flyAltitude;
	}

	public void setFlyAltitude(int flyAltitude) {
		this.flyAltitude = flyAltitude;
	}
}

public abstract class VehicleFactory {
	
	/**
	 * 
	 * @param type 产生交通工具的类型 type=car或者plane
	 * @return
	 */
	public static Vehicle createVehicle(String type) throws Exception{
		if("car".equals(type)) {
			return new Car();
		} else if("plane".equals(type)) {
			return new Plane();
		}
		throw new Exception("没有对应的交通工具");
	}

 }


public class Production{

    public static void main(String arg[]) {
         //造汽车
         Vehicle car=VehicleFactory.createVehicle("car");
         //造飞机
         Vehicle plane=VehicleFactory.createVehicle("car");
//造火车
        Vehicle  train=VehicleFactory.createVehicle("train");



}}

通过在VehicleFactory中传入 不同的参数 就可以 造出相应的交通工具  如果传入的参数找不到就抛出 异常。


简单工厂模式主要设计到三个角色:

1、工厂类(Creator)

2、抽象产品(Production)

3、具体产品类(concrete production)

机构图:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值