//产品1
package com.mfz.abstractFactory;
public interface Engine {
void run();
void start();
}
class LuxuryEngine implements Engine{
@Override
public void run() {
System.out.println("跑的快,降噪");
}
@Override
public void start() {
System.out.println("快速启动");
}
}
class LowEngine implements Engine{
@Override
public void run() {
System.out.println("跑得慢,噪音大");
}
@Override
public void start() {
System.out.println("启动慢");
}
}
//产品2
package com.mfz.abstractFactory;
public interface Seat {
void message();
}
class LuxurySeat implements Seat{
@Override
public void message() {
System.out.println("自动按摩");
}
}
class LowSeat implements Seat{
@Override
public void message() {
System.out.println("不支持动按摩");
}
}
//产品3
package com.mfz.abstractFactory;
public interface Tyre {
void revolution();
}
class LuxuryTyre implements Tyre{
@Override
public void revolution() {
System.out.println("7200/s");
}
}
class LowTyre implements Tyre{
@Override
public void revolution() {
System.out.println("5400/s");
}
}
//抽象工厂接口
package com.mfz.abstractFactory;
public interface CarFactory {
Engine createEngine();
Seat createSeat();
Tyre createTyre();
}
//抽象工厂接口实现
package com.mfz.abstractFactory;
public class CarLuxuryFactory implements CarFactory {
@Override
public Engine createEngine() {
return new LuxuryEngine();
}
@Override
public Seat createSeat() {
return new LuxurySeat();
}
@Override
public Tyre createTyre() {
return new LuxuryTyre();
}
}
package com.mfz.abstractFactory;
public class CarLowFactory implements CarFactory {
@Override
public Engine createEngine() {
return new LowEngine();
}
@Override
public Seat createSeat() {
return new LowSeat();
}
@Override
public Tyre createTyre() {
return new LowTyre();
}
}
//调用者代码
package com.mfz.abstractFactory;
public class Client {
public static void main(String[] args){
CarFactory car = new CarLuxuryFactory();
Engine engine = car.createEngine();
engine.start();
engine.run();
}
}
1抽象工厂模式-java
最新推荐文章于 2024-10-16 17:27:55 发布