您的位置:首页 > 其它

抽象工厂模式

2015-07-14 20:37 260 查看
//现在有两类车,跑车和商务车,那么跑车又有宝马跑车和奔驰跑车

商务车又有宝马商务车和奔驰商务车

现在又有一个生产车的大工厂,大工厂的下面又有跑车工厂和上午

********************
车的接口 ***********************

package com.lovo.AbstrctFactory2;

public interface ICar {

public void car(); //车的方法

}

********************
跑车的抽象类

package com.lovo.AbstrctFactory2;

public abstract class RunCar implements ICar{

@Override

public abstract void car();

}

********************
商务车的抽象类

package com.lovo.AbstrctFactory2;

public abstract class WorkCar implements ICar {

@Override

public abstract void car();

}

********************
宝马跑车的方法

package com.lovo.AbstrctFactory2;

public class BaoMaRun extends RunCar{

@Override

public void car() {

System.out.println("宝马跑车....");

}

}

******************** 宝马商务车的方法

package com.lovo.AbstrctFactory2;

public class BaoMaWork extends WorkCar {

@Override

public void car() {

System.out.println("宝马商务车....");

}

}

******************** 奔驰跑车的方法

package com.lovo.AbstrctFactory2;

public class BenChiRun extends RunCar {

@Override

public void car() {

System.out.println("奔驰跑车....");

}

}

******************** 奔驰商务车的方法
package com.lovo.AbstrctFactory2;

public class BenChiWork extends WorkCar{

@Override

public void car() {

System.out.println("奔驰商务车....");

}

}

******************** 工厂的接口 ***********************

package com.lovo.AbstrctFactory2;

public interface AbstractFactory {

public ICar getrun(); //获得跑车

public ICar getwork(); //获得商务车

}

******************** 宝马工厂

package com.lovo.AbstrctFactory2;

public class BaoMaFactory implements AbstractFactory{

@Override

public ICar getrun() {

return new BaoMaRun(); //获得宝马跑车对象

}

@Override

public ICar getwork() {

return new BaoMaWork(); //获得宝马商务车对象

}

}

********************
奔驰工厂

package com.lovo.AbstrctFactory2;

public class BenChiFactory implements AbstractFactory {

@Override

public ICar getrun() {

return new BenChiRun(); //获得奔驰跑车对象

}

@Override

public ICar getwork() {

return new BenChiWork(); //获得奔驰商务车对象

}

}

******************** 测试 ***********************

package com.lovo.AbstrctFactory2;

public class TestDemo {

public static void main(String[] args) {

AbstractFactory abf = new BaoMaFactory(); //获得宝马工厂

ICar car = abf.getwork(); //获得宝马商务车的对象方法

car.car(); //调用car方法,打印内容

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: