java工厂模式

工厂模式定义:提供创建对象的接口
假设我们有两个产品Bus,Car,此时我们需要为其建立两个工厂CarFactory和BusFactory,并通过某一方法返回各自生产的对象

package com.lamp.factory;

public class Bus implements Moveable{

public void run() {
System.out.println("bus is running");
}

}

package com.lamp.factory;

public class Car implements Moveable{

public void run() {
System.out.println("car is running");
}

}

package com.lamp.factory;

public interface Moveable {
public void run();
}



首先抽象出一个交通类

package com.lamp.factory;

public abstract class Vehicle {
public abstract Moveable create();
}



Bus和Car各自的工厂

package com.lamp.factory;

public class BusFactory extends Vehicle {

@Override
public Moveable create() {
return new Bus();
}

}

package com.lamp.factory;

public class CarFactory extends Vehicle {

@Override
public Moveable create() {
return new Car();
}

}



最后进行测试

package com.lamp.factory;

public class Test {
public static void main(String[] args) {
//Vehicle factory = new BusFactory();
Vehicle factory = new CarFactory();
/**
* 工厂模式的优点在于只要你新增一个产品,只需添加相应产品的工厂,当你需要更换产品时
* 只需将对应的工厂改变,其它地方不需再改变,当然如果你新增的产品很多,这样容易造成工厂的泛滥
* 这也是工厂模式的弊端
*/
Moveable m = factory.create();
m.run();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值