抽象工厂设计模式最大特点就是解耦。
//业务需求:生产不同内存条搭配Win7系统的电脑
//定义抽象工厂
public interface AbstastFactory {
public Ram createRam();
public WinSystem createSys();
}
//具体工厂实现 低端电脑配置
public class LowComputer implements AbstastFactory {
@Override
public Ram createRam() { return new Ram512(); }
@Override
public WinSystem createSys() { return new SystemWin7(); }
}
//具体工厂实现 高端电脑配置
public class NiceComputer implements AbstastFactory {
@Override
public Ram createRam() { return new Ram1G(); }
@Override
public WinSystem createSys() { return new SystemWin7(); }
}
//内存条接口
public interface Ram {}
//512内存条实现类
public class Ram1G implements Ram {
public Ram1G() {
System.out.println("1G内存");
}
}
//1G内存条实现类
public class Ram512 implements Ram {
public Ram512(){
System.out.println("512内存");
}
}
//系统接口
public interface WinSystem {}
//win7系统实现类
public class SystemWin7 implements WinSystem {
public SystemWin7() {
System.out.println("win7");
}
}
//客户类拿到具体产品
public static void main(String[] args) {
LowComputer lowComputer = new LowComputer();
lowComputer.createRam();
lowComputer.createSys();
}