03 Abstract Factory Pattern

content

Mobile phone interface products

router product interface

Xiaomi phone

Huawei cell phone 

Xiaomi router 

huawei router 

 abstract production factory 

Xiaomi product production factory 

Huawei product production factory 

client


Mobile phone interface products

// 手机接口产品
public interface IphoneProduct {

    void start();
    void shutdown();
    void callup();
    void sendSMS();
}

router product interface

//路由器产品接口
public interface IRouteProduct {

    void start();
    void shutdown();
    void openWife();
    void setting();
}

Xiaomi phone

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

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

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

    @Override
    public void sendSMS() {
        System.out.println("小米手机发短息");
    }
}

Huawei cell phone 

public class HuaweiPhone implements IphoneProduct{
    @Override
    public void start() {
        System.out.println("开启华为手机");
    }

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

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

    @Override
    public void sendSMS() {
        System.out.println("华为手机发短息");
    }
}

Xiaomi router 

public class XiaomiRouter implements IRouteProduct{
    @Override
    public void start() {
        System.out.println("启动小米路由器");
    }

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

    @Override
    public void openWife() {
        System.out.println("打开小米Wifi");
    }

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

huawei router 

public class HuaweiRouter implements IRouteProduct {

    @Override
    public void start() {
        System.out.println("启动华为路由器");
    }

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

    @Override
    public void openWife() {
        System.out.println("打开华为Wifi");
    }

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

 abstract production factory 

//抽象生产工厂
public interface IProductFactory {

    //生产手机
    IphoneProduct iphoneProduct();
    //生产路由器
    IRouteProduct iRouteProduct();

}

Xiaomi product production factory 

//小米产品生产工厂
public class XiaomiFactory implements IProductFactory{
    @Override
    public IphoneProduct iphoneProduct() {
        return new XiaomiPhone();
    }

    @Override
    public IRouteProduct iRouteProduct() {
        return new XiaomiRouter();
    }
}

Huawei product production factory 

//华为产品生产工厂 
public class HuaweiFactory implements IProductFactory {
    @Override
    public IphoneProduct iphoneProduct() {
        return new HuaweiPhone();
    }

    @Override
    public IRouteProduct iRouteProduct() {
        return new HuaweiRouter();
    }
}

client

public class Client {
    public static void main(String[] args) {

        System.out.println("============小米系列==============");
        //小米工厂
        XiaomiFactory xiaomiFactory = new XiaomiFactory();
        IphoneProduct iphoneProduct = xiaomiFactory.iphoneProduct();
        System.out.println("=============小米手机===========");
        iphoneProduct.start();
        iphoneProduct.shutdown();
        iphoneProduct.callup();
        iphoneProduct.sendSMS();
        IRouteProduct iRouteProduct = xiaomiFactory.iRouteProduct();
        System.out.println("=============小米路由===========");
        iRouteProduct.start();
        iRouteProduct.shutdown();
        iRouteProduct.openWife();
        iRouteProduct.setting();

        System.out.println("============华为系列手机=================");
        //华为工厂
        HuaweiFactory huaweiFactory = new HuaweiFactory();
        iphoneProduct = huaweiFactory.iphoneProduct();
        System.out.println("=============华为手机===========");
        iphoneProduct.start();
        iphoneProduct.shutdown();
        iphoneProduct.callup();
        iphoneProduct.sendSMS();
        iRouteProduct = huaweiFactory.iRouteProduct();
        System.out.println("=============华为路由===========");
        iRouteProduct.start();
        iRouteProduct.shutdown();
        iRouteProduct.openWife();
        iRouteProduct.setting();

    }
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324075757&siteId=291194637