抽象工厂模式
适合产品族,不能新增产品,能扩展产品组合。
多个接口
public interface MakkaPakka {
void msg();
}
public class MakkaPakkaNumOne implements MakkaPakka {
@Override
public void msg() {
System.out.println("MakkaPakka 1号来了");
}
}
public class MakkaPakkaNumTwo implements MakkaPakka {
@Override
public void msg() {
System.out.println("MakkaPakka 2号来了");
}
}
—————————————————————————————————
public interface UpsyDaisy {
void msg();
}
public class UpsyDaisyNumOne implements UpsyDaisy {
@Override
public void msg() {
System.out.println("UpsyDaisy 1号来了");
}
}
public class UpsyDaisyNumTwo implements UpsyDaisy {
@Override
public void msg() {
System.out.println("UpsyDaisy 2号来了");
}
}
—————————————————————————————————
public interface GardenFactory {
MakkaPakka createMakka();
UpsyDaisy createUpsy();
}
public class GardenFactoryNumOne implements GardenFactory {
@Override
public MakkaPakka createMakka() {
return new MakkaPakkaNumOne();
}
@Override
public UpsyDaisy createUpsy() {
return new UpsyDaisyNumOne();
}
}
public class GardenFactoryNumTwo implements GardenFactory {
@Override
public MakkaPakka createMakka() {
return new MakkaPakkaNumTwo();
}
@Override
public UpsyDaisy createUpsy() {
return new UpsyDaisyNumTwo();
}
}
测试:
public class Demo {
public static void main(String[] args) {
GardenFactoryNumOne factoryNumOne = new GardenFactoryNumOne();
MakkaPakka m = factoryNumOne.createMakka();
UpsyDaisy u = factoryNumOne.createUpsy();
m.msg();
u.msg();
}
}