设计模式-抽象工厂模式

介绍

抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

主要解决:接口选择的问题

使用场景:一个对象族有相同的约束时可以使用抽象工厂模式。

优点
1.分离接口与实现

缺点
1.类文件的爆炸性增加
2.不太容易扩展新的产品类

UML类图

设计模式-抽象工厂模式_第1张图片
AbstractFactory.jpg

代码实现

OS.java

public abstract class OS {

    public abstract void method();
}

Windows.java

public class Windows extends OS{

    @Override
    public void method() {
        System.out.println("This is Windows OS!");
    }
}

MacOS.java

public class MacOS extends OS {

    @Override
    public void method() {
        System.out.println("This is MacOS");
    }
}

Screen.java

public abstract class Screen {

    public abstract void method();
}

LTPS.java

public class LTPS extends Screen {

    @Override
    public void method() {
        System.out.println("This is LTPS");
    }
}

IPS.java

public class IPS extends Screen {

    @Override
    public void method() {
        System.out.println("This is IPS");
    }
}

ComputerFactory.java

public abstract class ComputerFactory {

    public abstract OS createOS();
    
    public abstract Screen createScreen();
}

MateBookFactory.java

public class MateBookFactory extends ComputerFactory {

    @Override
    public OS createOS() {
        return new Windows();
    }

    @Override
    public Screen createScreen() {
        return new LTPS();
    }
}

MacBookFactory.java

public class MacBookFactory extends ComputerFactory {

    @Override
    public OS createOS() {
        return new MacOS();
    }

    @Override
    public Screen createScreen() {
        return new IPS();
    }
}

你可能感兴趣的:(设计模式-抽象工厂模式)