设计模式-抽象工厂模式

介绍

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

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

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

优点
1.分离接口与实现

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

UML类图

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();
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容