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

    设计模式4——抽象工厂模式




    代码:

    package com.ghl.factory.abstract1;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName IphoneProduct
     * @Date 2020/8/26 14:48
     * @Author gaohengli
     * @Version 1.0
     */
    //抽象工厂模式
        //手机产品接口
    public interface IphoneProduct {
    
        void start();
        void shutdown();
        void callup();
        void sendSMS();
    }
    
    
    package com.ghl.factory.abstract1;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName IRouterProduct
     * @Date 2020/8/26 16:08
     * @Author gaohengli
     * @Version 1.0
     */
    //路由产品接口
    public interface IRouterProduct {
    
        void start();
        void shutdown();
        void openwife();
        void setting();
    }
    
    
    package com.ghl.factory.abstract1;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName XiaomiPhone
     * @Date 2020/8/26 16:11
     * @Author gaohengli
     * @Version 1.0
     */
    //小米手机
    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("小米发短信");
        }
    }
    
    
    package com.ghl.factory.abstract1;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName XiaomiRouter
     * @Date 2020/8/26 16:15
     * @Author gaohengli
     * @Version 1.0
     */
    //小米路由器
    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 setting() {
            System.out.println("小米设置");
        }
    }
    
    
    package com.ghl.factory.abstract1;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName HuaweiPhone
     * @Date 2020/8/26 16:13
     * @Author gaohengli
     * @Version 1.0
     */
    //华为手机
    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("华为发短信");
        }
    }
    
    
    package com.ghl.factory.abstract1;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName HuaweiRouter
     * @Date 2020/8/26 16:16
     * @Author gaohengli
     * @Version 1.0
     */
    //华为路由器
    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 setting() {
            System.out.println("华为设置");
        }
    }
    
    
    package com.ghl.factory.abstract1;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName IProductFactory
     * @Date 2020/8/26 16:20
     * @Author gaohengli
     * @Version 1.0
     */
    //抽象产品工厂
    public interface IProductFactory {
    
        //生产手机
        IphoneProduct iphoneProduct();
        //生产路由器
        IRouterProduct iRouterProduct();
    }
    
    
    package com.ghl.factory.abstract1;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName HuaweiFactory
     * @Date 2020/8/26 16:25
     * @Author gaohengli
     * @Version 1.0
     */
    //华为工厂
    public class HuaweiFactory implements IProductFactory {
        @Override
        public IphoneProduct iphoneProduct() {
            return new HuaweiPhone();
        }
    
        @Override
        public IRouterProduct iRouterProduct() {
            return new HuaweiRouter();
        }
    }
    
    
    package com.ghl.factory.abstract1;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName XiaomiFactory
     * @Date 2020/8/26 16:23
     * @Author gaohengli
     * @Version 1.0
     */
    //小米工厂
    public class XiaomiFactory implements IProductFactory{
        @Override
        public IphoneProduct iphoneProduct() {
            return new XiaomiPhone();
        }
    
        @Override
        public IRouterProduct iRouterProduct() {
            return new XiaomiRouter();
        }
    }
    
    
    package com.ghl.factory.abstract1;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName Client
     * @Date 2020/8/26 16:36
     * @Author gaohengli
     * @Version 1.0
     */
    //客户端测试
    public class Client {
        public static void main(String[] args) {
    
            XiaomiFactory xiaomiFactory = new XiaomiFactory();
            IphoneProduct iphoneProduct = xiaomiFactory.iphoneProduct();
            iphoneProduct.callup();
            iphoneProduct.sendSMS();
    
            IRouterProduct iRouterProduct = xiaomiFactory.iRouterProduct();
            iRouterProduct.openwife();
    
    
        }
    }
    
    

  • 相关阅读:
    在android 5.0以上,如何判断当前应用是在前台还是后台
    Android实现手机摄像头的自动对焦
    抓包获取百度音乐API
    andriod 自定义来电界面功能
    Android 自定义相机
    解决Android拍照保存在系统相册不显示的问题
    有关Color和Drawable你所不知道的那些内容
    Android主题切换方案总结
    设置background属性使用selector的时候内置?attr报错的解决方案
    一步一步解析google camera2 demo(三)
  • 原文地址:https://www.cnblogs.com/ghlz/p/13566163.html
Copyright © 2011-2022 走看看