抽象接口(车)
package com.yf.designpattern.factorymethod; public interface Car { public void drive(); }
具体实现类(宝马和奔驰)
package com.yf.designpattern.factorymethod; public class BmwCar implements Car { @Override public void drive() { System.out.println("This is a BMW!!!"); } } package com.yf.designpattern.factorymethod; public class BenzCar implements Car { @Override public void drive() { System.out.println("This is a Benz!!!"); } }
抽象工厂接口(汽车制造厂)
package com.yf.designpattern.factorymethod; public interface CarFactory { public Car driver(); }
工厂的具体实现(奔驰车厂和宝马车厂)
package com.yf.designpattern.factorymethod; //奔驰车厂只生产奔驰车 public class BenzCarFactory implements CarFactory { @Override public Car driver() { // TODO Auto-generated method stub return new BenzCar(); } } package com.yf.designpattern.factorymethod; //宝马车厂只生产宝马车 public class BmwCarFactory implements CarFactory { @Override public Car driver() { // TODO Auto-generated method stub return new BmwCar(); } }
测试类:
package com.yf.designpattern.factorymethod; public class Test { /** * @param args */ public static void main(String[] args) { CarFactory cf=new BmwCarFactory(); Car car=cf.driver(); car.drive(); } }
工厂方法的好处是减轻了汽车工厂的负载,具体实例都由特有的对象工厂来产生