抽象工厂

抽象工厂

用来创建工厂的工厂,超级工厂

抽象工厂接口

public interface ProductFactory {
    PhoneProduct phoneProduct();
    RouterProduct routerProduct();
}

具体工厂类

//小米工厂
public class XiaomiFactory implements ProductFactory{
    @Override
    public PhoneProduct phoneProduct() {
        return new XiaomiPhone();
    }

    @Override
    public RouterProduct routerProduct() {
        return new XiaomiRouter();
    }
}
//华为工厂
public class HuaweiFactory implements ProductFactory{
    @Override
    public PhoneProduct phoneProduct() {
        return new HuaweiPhone();
    }

    @Override
    public RouterProduct routerProduct() {
        return new HuaweiRouter();
    }
}

抽象产品接口

//手机接口
public interface PhoneProduct {
    void start();
    void shut();
    void call();
    void send();
}
//路由器接口
public interface RouterProduct {
    void start();
    void shut();
    void openWifi();
    void setting();
}

具体产品类

//小米手机
public class XiaomiPhone implements PhoneProduct{
    @Override
    public void start() {
        System.out.println("小米手机开机");
    }

    @Override
    public void shut() {
        System.out.println("小米手机关机");
    }

    @Override
    public void call() {
        System.out.println("小米手机打电话机");
    }

    @Override
    public void send() {
        System.out.println("小米手机发短信机");
    }
}
//小米路由器
public class XiaomiRouter implements RouterProduct{
    @Override
    public void start() {
        System.out.println("小米路由器开机");
    }

    @Override
    public void shut() {
        System.out.println("小米路由器关机机");
    }

    @Override
    public void openWifi() {
        System.out.println("小米路由器wifi");
    }

    @Override
    public void setting() {
        System.out.println("小米路由器设置");
    }
}
//华为手机
public class HuaweiPhone implements PhoneProduct{
    @Override
    public void start() {
        System.out.println("华为手机开机");
    }

    @Override
    public void shut() {
        System.out.println("华为手机关机");
    }

    @Override
    public void call() {
        System.out.println("华为手机打电话机");
    }

    @Override
    public void send() {
        System.out.println("华为手机发短信机");
    }
}
//华为路由器
public class HuaweiRouter implements RouterProduct{
    @Override
    public void start() {
        System.out.println("华为路由器开机");
    }

    @Override
    public void shut() {
        System.out.println("华为路由器关机机");
    }

    @Override
    public void openWifi() {
        System.out.println("华为路由器wifi");
    }

    @Override
    public void setting() {
        System.out.println("华为路由器设置");
    }
}

客户端

//客户端
public class Consumer {
    public static void main(String[] args) {
        System.out.println("===========小米==============");
        XiaomiFactory xiaomiFactory = new XiaomiFactory();
        PhoneProduct xiaomiPhone = xiaomiFactory.phoneProduct();
        xiaomiPhone.call();
        xiaomiPhone.send();
        RouterProduct xiaomiRouter = xiaomiFactory.routerProduct();
        xiaomiRouter.openWifi();
        xiaomiRouter.setting();

        System.out.println("===========华为==============");
        HuaweiFactory huaweiFactory = new HuaweiFactory();
        PhoneProduct huaweiPhone = huaweiFactory.phoneProduct();
        huaweiPhone.call();
        huaweiPhone.send();
        RouterProduct huaweiRouter = huaweiFactory.routerProduct();
        huaweiRouter.openWifi();
        huaweiRouter.setting();
    }
}
posted @ 2021-12-13 15:35  jpy  阅读(21)  评论(0)    收藏  举报