工厂模式

发布时间 2023-09-21 11:10:43作者: 蜗牛攀爬

1:工厂方法模式:

public class FactoryTest {

    //定义抽象产品类
    public abstract class Phone {
        public abstract String brandName();
    }

    //定义具体实现类
    public class Huawei extends Phone {

        @Override
        public String brandName() {
            return "my name is Huawei";
        }
    }

    //定义具体实现类
    public class Xiaomi extends Phone {

        @Override
        public String brandName() {
            return "my name is Xiaomi";
        }
    }

    //定义抽象工厂
    public abstract class Factory {
        public abstract Phone generatePhone();
    }

    //定义Huawei工厂,生成华为手机
    public class HuaweiFactory extends Factory {

        @Override
        public Phone generatePhone() {
            return new Huawei();
        }
    }

    //定义Xiaomi工厂,生成小米手机
    public class XiaomiFactory extends Factory {

        @Override
        public Phone generatePhone() {
            return new Huawei();
        }
    }

    //使用:
    public void test() {
        Factory huaweiFactory = new HuaweiFactory();
        Phone huaweiPhone = huaweiFactory.generatePhone();
        Log.d("test", "phone name--->" + huaweiPhone.brandName());

        Factory xiaomiFactory = new XiaomiFactory();
        Phone xiaomiPhone = xiaomiFactory.generatePhone();
        Log.d("test", "phone name--->" + xiaomiPhone.brandName());
    }
}