设计模式-极品飞车-【工厂方法模式】
2013-04-09 11:04
211 查看
【工厂方法模式应用场景举例】
比如在玩“极品飞车”这款游戏,晕了吧,我喜欢极品飞车:),在玩这款游戏时,游戏者可以选择从不同品牌来选择赛车,那么这个“品牌”其实也就是工厂,每个工厂生产的赛车都不一样,这就是典型的工厂方法的应用场景。
【工厂方法模式解释】
类型:创建模式
定义一个用于创建对象的接口,让其子类来决定实例化哪一个类(产品),工厂方法使一个类的创建延迟到其子类中。
【工厂方法模式UML图】
【工厂方法模式-JAVA代码实现】
新建赛车的接口:
package car_interface; public interface Icar_interface { public void start(); public void stop(); } |
package car_imple; import car_interface.Icar_interface; public class base_car_imple implements Icar_interface { private int speed; private String name; public int getSpeed() { return speed; } public void setSpeed(int speed) { this.speed = speed; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void start() { // TODO Auto-generated method stub } public void stop() { // TODO Auto-generated method stub } } |
package car_imple; import car_interface.Icar_interface; public class car_audi_imple extends base_car_imple { public void start() { System.out.println(this.getName() + " 车以专利技术起动了 最高速度为:" + this.getSpeed()); } public void stop() { System.out.println(this.getName() + " 车以专利技术停车了"); } } |
package car_imple; import car_interface.Icar_interface; public class car_3w_imple extends base_car_imple { public void start() { System.out.println(this.getName() + " 车以专利技术起动了 最高速度为:" + this.getSpeed()); } public void stop() { System.out.println(this.getName() + " 车以专利技术停车了"); } } |
package car_factory_interface; import car_interface.Icar_interface; public interface Icar_factory { public Icar_interface create_car(); } |
package car_factory_imple; import car_factory_interface.Icar_factory; import car_imple.car_audi_imple; import car_interface.Icar_interface; public class audi_car_factory_imple implements Icar_factory { public Icar_interface create_car() { car_audi_imple car_audi_imple_ref = new car_audi_imple(); car_audi_imple_ref.setName("奥迪A6"); car_audi_imple_ref.setSpeed(300); return car_audi_imple_ref; } } |
package car_factory_imple; import car_factory_interface.Icar_factory; import car_imple.car_3w_imple; import car_imple.car_audi_imple; import car_interface.Icar_interface; public class threeW_car_factory_imple implements Icar_factory { public Icar_interface create_car() { car_3w_imple car_3w_imple_ref = new car_3w_imple(); car_3w_imple_ref.setName("大众A6"); car_3w_imple_ref.setSpeed(400); return car_3w_imple_ref; } } |
package run_main; import car_factory_imple.audi_car_factory_imple; import car_factory_interface.Icar_factory; import car_interface.Icar_interface; public class run_main { public static void main(String[] args) { Icar_factory car_factory = new audi_car_factory_imple(); Icar_interface car_ref = car_factory.create_car(); car_ref.start(); car_ref.stop(); } } |
奥迪A6 车以专利技术起动了 最高速度为:300 奥迪A6 车以专利技术停车了 |
Icar_factory car_factory = new audi_car_factory_imple(); |
工厂方法模式factory_method示例代码:点击
相关文章推荐
- 关于java设计模式与极品飞车游戏的思考
- 设计模式-极品飞车-【策略模式】
- 设计模式-极品飞车-【代理模式】
- 设计模式-极品飞车-【外观模式】
- 设计模式-极品飞车-【原型模式】
- 设计模式-极品飞车-【模板方法模式】
- 设计模式-极品飞车-【建造者模式】
- 设计模式-极品飞车-【观察者模式】
- 设计模式-极品飞车-【抽象工厂模式】
- 关于java设计模式与极品飞车游戏的思考
- 设计模式-极品飞车-【装饰模式】
- 设计模式——工厂方法模式
- 设计模式学习(七)————工厂方法模式
- 设计模式之_简单工厂模式、工厂方法模式、抽象工厂模式 、策略模式、策略与工厂的区别(转)
- Java 设计模式之 简单工厂模式(静态工厂方法模式)
- 设计模式->创建型模式->工厂方法模式
- PHP设计模式-工厂系列(二)-工厂方法模式
- 【java设计模式】工厂方法模式
- 设计模式 05 工厂方法模式
- 设计模式 (二)工厂方法模式(FactoryMethod)