首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

工场模式例子(一)

2012-09-12 
工厂模式例子(一)对工厂的抽象?public interface Builder {void buildMotor()void buildWheels()void pa

工厂模式例子(一)

对工厂的抽象

?

public interface Builder {void buildMotor();void buildWheels();void paintColor();AbstractProduct getProduct();}

?bus工厂

public class BusBuilder implements Builder {private String motor;private int wheels;private Color color;@Overridepublic void buildMotor() {// TODO Auto-generated method stubthis.motor = "Bus's motor";}@Overridepublic void buildWheels() {// TODO Auto-generated method stubthis.wheels = 8;}@Overridepublic void paintColor() {// TODO Auto-generated method stubthis.color = Color.green;}@Overridepublic AbstractProduct getProduct() {AbstractProduct p = new Bus ();p.setColor(color);p.setMotor(motor);p.setWheels(wheels);return p;}}

?Car工厂

public class CarBuilder implements  Builder{private String motor;private int wheels;private Color color;@Overridepublic void buildMotor() {this.motor = "Car's motor";}@Overridepublic void buildWheels() {this.wheels = 4;}@Overridepublic void paintColor() {this.color = Color.black;}@Overridepublic AbstractProduct getProduct() {AbstractProduct p = new Car ();p.setColor(color);p.setMotor(motor);p.setWheels(wheels);return p;}}

?Trunk工厂

public class TruckBuilder implements Builder {private String motor;private int wheels;private Color color;@Overridepublic void buildMotor() {this.motor = "Truck's motor";}@Overridepublic void buildWheels() {this.wheels = 12;}@Overridepublic void paintColor() {this.color = Color.gray;}@Overridepublic AbstractProduct getProduct() {AbstractProduct p = new Truck ();p.setColor(color);p.setMotor(motor);p.setWheels(wheels);return p;}}

?工厂控制

public class Director {private Builder builder;public Director(Builder builder){this.builder = builder ;}public void construct(){builder.buildMotor();builder.buildWheels();builder.paintColor();}}
?

?

热点排行