工厂接口类
public interface ProductFactory {
    Phone phoneProduct();//生产手机
    Router routerProduct();//生产路由器
} 
小米工厂实现类
public class XiaomiFactoryImpl implements ProductFactory {
    @Override
    public Phone phoneProduct() {
        return new XiaomiPhoneImpl();
    }
    @Override
    public Router routerProduct() {
        return new XiaomiRouterImpl();
    }
} 
华为工厂实现类
public class HuaweiFactoryImpl implements ProductFactory {
    @Override
    public Phone phoneProduct() {
        return new HuaweiPhoneImpl();
    }
    @Override
    public Router routerProduct() {
        return new HuaweiRouterImpl();
    }
} 
手机接口类
public interface Phone {
    void start();//开机
    void callUp();//打电话
} 
小米手机实现类
public class XiaomiPhoneImpl implements Phone {
    @Override
    public void start() {
        System.out.println("小米手机开机...");
    }
    @Override
    public void callUp() {
        System.out.println("小米手机打电话...");
    }
} 
华为手机实现类
public class HuaweiPhoneImpl implements Phone {
    @Override
    public void start() {
        System.out.println("华为手机开机...");
    }
    @Override
    public void callUp() {
        System.out.println("华为手机打电话...");
    }
} 
路由器接口类
public interface Router {
    void start();//开机
    void openWifi();//打开WiFi
} 
小米路由器实现类
public class XiaomiRouterImpl implements Router {
    @Override
    public void start() {
        System.out.println("小米路由器开机...");
    }
    @Override
    public void openWifi() {
        System.out.println("小米路由器打开WiFi...");
    }
} 
华为路由器实现类
public class HuaweiRouterImpl implements Router {
    @Override
    public void start() {
        System.out.println("华为路由器开机...");
    }
    @Override
    public void openWifi() {
        System.out.println("华为路由器打开WiFi...");
    }
} 
演示类
public class Demo {
    public static void main(String[] args) {
        ProductFactory xiaomiFactory = new XiaomiFactoryImpl();
        ProductFactory huaweiFactory = new HuaweiFactoryImpl();
        //小米工厂生产手机
        Phone xiaomiPhone = xiaomiFactory.phoneProduct();
        xiaomiPhone.start();
        xiaomiPhone.callUp();
        //小米工厂生产路由器
        Router xiaomiRouter = xiaomiFactory.routerProduct();
        xiaomiRouter.start();
        xiaomiRouter.openWifi();
        //华为工厂生产手机
        Phone huaweiPhone = huaweiFactory.phoneProduct();
        huaweiPhone.start();
        huaweiPhone.callUp();
        //华为工厂生产路由器
        Router huaweiRouter = huaweiFactory.routerProduct();
        huaweiRouter.start();
        huaweiRouter.openWifi();
    }
} 
演示结果:











