1. 工厂模式

1.1 定义

在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

1.2 程序样例

定义工厂:

public class PhoneSimpleFactory {

    public Phone getPhone(String name) {
        if ("apple".equals(name)) {
            return new ApplePhone();
        } else if ("huawei".equals(name)) {
            return new HuaweiPhone();
        } else if ("xiaomi".equals(name)) {
            return new XiaomiPhone();
        } else {
            return null;
        }
    }
}

测试:

public class Test {

    public static void main(String[] args) {
        PhoneSimpleFactory factory = new PhoneSimpleFactory();
        final Phone xiaomi = factory.getPhone("xiaomi");
        final Phone huawei = factory.getPhone("huawei");
        final Phone apple = factory.getPhone("apple");
        xiaomi.use();
        huawei.use();
        apple.use();
    }
}