抽象工厂模式
- 抽象工厂模式包含以下几个核心角色:
- 抽象工厂(Abstract Factory):声明了一组用于创建产品对象的方法,每个方法对应一种产品类型。抽象工厂可以是接口或抽象类。
- 具体工厂(Concrete Factory):实现了抽象工厂接口,负责创建具体产品对象的实例。
- 抽象产品(Abstract Product):定义了一组产品对象的共同接口或抽象类,描述了产品对象的公共方法。
- 具体产品(Concrete Product):实现了抽象产品接口,定义了具体产品的特定行为和属性。
- 案例
package com.dhr.study.design.methodfactory;
public interface CarFactory {
Car buy();
}
package com.dhr.study.design.methodfactory;
public class BmwFactory implements CarFactory{
@Override
public Car buy() {
return new Bmw();
}
}
package com.dhr.study.design.methodfactory;
public class MercedesFactory implements CarFactory{
@Override
public Car buy() {
return new Mercedes();
}
}
package com.dhr.study.design.methodfactory;
public interface Car {
void run();
}
package com.dhr.study.design.methodfactory;
public class Bmw implements Car{
@Override
public void run() {
System.out.println("宝马");
}
}
package com.dhr.study.design.methodfactory;
public class Mercedes implements Car{
@Override
public void run() {
System.out.println("奔驰");
}
}
- 测试
package com.dhr.study.design.methodfactory;
public class TestCar {
public static void main(String[] args) {
Car mercedes = new MercedesFactory().buy();
Car bmw = new BmwFactory().buy();
mercedes.run();
bmw.run();
}
}