zoukankan      html  css  js  c++  java
  • 设计模式 值 抽象工厂模式

    简介

    围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂.

    UML

    code

    public class Clinet {
        public static void main(String[] args) {
            System.out.println("==================");
            XiaomiFactory xiaomiFactory = new XiaomiFactory();
    
            IphoneProduct iphoneProduct = xiaomiFactory.iphoneProduct();
            iphoneProduct.callup();
            iphoneProduct.sendSMS();
    
            IRouterProduct iRouterProduct = xiaomiFactory.routerProduct();
            iRouterProduct.openWife();
    
        }
    }
    
    
    public class HuaweiFactory implements IProductFactory {
        @Override
        public IphoneProduct iphoneProduct() {
            return new HuaweiPhone();
        }
    
        @Override
        public IRouterProduct routerProduct() {
            return new HuaweiRouter();
        }
    }
    
    
    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("华为发短信");
        }
    }
    
    
    public class HuaweiRouter implements IRouterProduct {
        @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 seeting() {
            System.out.println("华为设置");
        }
    }
    
    
    public interface IphoneProduct {
        void start();
        void shutdown();
        void callup();
        void sendSMS();
    }
    
    
    public interface IProductFactory {
        IphoneProduct iphoneProduct();
    
        IRouterProduct routerProduct();
    }
    
    
    public interface IRouterProduct {
        void start();
        void shutdown();
        void openWife();
        void seeting();
    }
    
    
    public class XiaomiFactory implements IProductFactory {
        @Override
        public IphoneProduct iphoneProduct() {
            return new XiaomiPhone();
        }
    
        @Override
        public IRouterProduct routerProduct() {
            return new XiaomiRouter();
        }
    }
    
    
    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("小米手机发短信");
        }
    }
    
    public class XiaomiRouter implements IRouterProduct {
        @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 seeting() {
            System.out.println("小米设置");
        }
    }
    
    
    Hope is a good thing,maybe the best of things,and no good thing ever dies.----------- Andy Dufresne
  • 相关阅读:
    牛客网剑指offer第46题——孩子们的游戏(圆圈中最后剩下的数)
    不借助临时变量两数交换篇
    牛客网剑指offer第48题——不用加减乘除做加法
    牛客网剑指offer第44题——翻转单词顺序列
    双指针索引技术
    二叉树的下一个结点
    数组中的逆序对
    丑数
    野指针与空指针
    【转】以操作系统的角度述说线程与进程
  • 原文地址:https://www.cnblogs.com/eat-too-much/p/14817451.html
Copyright © 2011-2022 走看看