`
liaokang.java
  • 浏览: 152303 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

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();
	}
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics