抽象工厂模式

来源:互联网 发布:软件学院工程实践 编辑:程序博客网 时间:2024/06/13 19:34

//现在有两类车,跑车和商务车,那么跑车又有宝马跑车和奔驰跑车

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

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


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

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方法,打印内容

}
}



0 0
原创粉丝点击