zoukankan      html  css  js  c++  java
  • 去吧!设计模式之桥接模式

    零、前言:将抽象化与实现化脱耦,使得二者独立的变化

    桥接模式的介绍什么的就免了(我懒),程序员间还是用图和代码交流吧
    代码中有些命名使用了汉字,还请见谅,毕竟设计模式还是易读得好些

    一图镇楼
    9414344-0ef1af6ad73e3e34.png
    桥接模式.png

    一、代码实现

    1、桥接模式UML
    9414344-0513837e6ecb9bb8.png
    桥接模式UML.png
    2、卡片抽象类
    /**
     * 作者:张风捷特烈
     * 时间:2018/8/25 0025:8:18
     * 邮箱:1981462002@qq.com
     * 说明:卡片抽象类
     */
    public abstract class Card {
        protected Material mMaterial;
    
        public void setMaterial(Material material) {
            mMaterial = material;
        }
    
        public abstract void play();
    }
    
    3、扑克牌
    public class 扑克牌 extends Card {
    
        public 扑克牌() {
            play();
        }
    
        @Override
        public void play() {
            System.out.println("扑克牌:我就剩一张牌了");
        }
    }
    
    
    4、游戏王卡片
    public class 游戏王卡 extends Card {
        public 游戏王卡() {
            play();
        }
    
        @Override
        public void play() {
            System.out.println("游戏王卡:我的回合,抽牌");
        }
    }
    
    5、炉石卡
    public class 炉石卡 extends Card {
    
        public 炉石卡() {
            play();
        }
    
        @Override
        public void play() {
            System.out.println("炉石卡:为了正义");
        }
    }
    
    6、材质接口
    public  abstract class Material {
        public abstract void cover();
    }
    
    7、金材质
    public class 金 extends Material {
    
        public 金() {
            cover();
        }
    
        @Override
        public void cover() {
            System.out.println("卡片升级--->金卡");
        }
    }
    
    8、银材质
    public class 银 extends Material {
        public 银() {
            cover();
        }
    
        @Override
        public void cover() {
            System.out.println("卡片升级--->银卡");
        }
    }
    
    9、测试类
    public class Player {
        public static void main(String[] args) {
            游戏王卡 混沌战士 = new 游戏王卡();
            混沌战士.setMaterial(new 银());
    
            炉石卡 乌瑟尔 = new 炉石卡();
            乌瑟尔.setMaterial(new 金());
        }
    }
    
    10、测试结果
    游戏王卡:我的回合,抽牌
    卡片升级--->银卡
    炉石卡:为了正义
    卡片升级--->金卡
    

    本文由张风捷特烈原创,转载请注明

  • 相关阅读:
    前端学HTTP之重定向和负载均衡
    前端学HTTP之Web主机托管
    前端学HTTP之内容协商
    前端学HTTP之字符集
    前端学HTTP之实体和编码
    前端学HTTP之安全HTTP
    前端学HTTP之摘要认证
    前端学HTTP之基本认证
    前端学HTTP之客户端识别和cookie
    前端学HTTP之网关、隧道和中继
  • 原文地址:https://www.cnblogs.com/toly-top/p/9781946.html
Copyright © 2011-2022 走看看