首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >去吧!设计模式之桥接模式

去吧!设计模式之桥接模式

作者头像
张风捷特烈
发布2018-09-26 16:56:14
发布2018-09-26 16:56:14
50600
代码可运行
举报
运行总次数:0
代码可运行
零、前言:将抽象化与实现化脱耦,使得二者独立的变化

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

一图镇楼

桥接模式.png


一、代码实现
1、桥接模式UML

桥接模式UML.png

2、卡片抽象类
代码语言:javascript
代码运行次数:0
运行
复制
/**
 * 作者:张风捷特烈
 * 时间: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、扑克牌
代码语言:javascript
代码运行次数:0
运行
复制
public class 扑克牌 extends Card {

    public 扑克牌() {
        play();
    }

    @Override
    public void play() {
        System.out.println("扑克牌:我就剩一张牌了");
    }
}
4、游戏王卡片
代码语言:javascript
代码运行次数:0
运行
复制
public class 游戏王卡 extends Card {
    public 游戏王卡() {
        play();
    }

    @Override
    public void play() {
        System.out.println("游戏王卡:我的回合,抽牌");
    }
}
5、炉石卡
代码语言:javascript
代码运行次数:0
运行
复制
public class 炉石卡 extends Card {

    public 炉石卡() {
        play();
    }

    @Override
    public void play() {
        System.out.println("炉石卡:为了正义");
    }
}
6、材质接口
代码语言:javascript
代码运行次数:0
运行
复制
public  abstract class Material {
    public abstract void cover();
}
7、金材质
代码语言:javascript
代码运行次数:0
运行
复制
public class 金 extends Material {

    public 金() {
        cover();
    }

    @Override
    public void cover() {
        System.out.println("卡片升级--->金卡");
    }
}
8、银材质
代码语言:javascript
代码运行次数:0
运行
复制
public class 银 extends Material {
    public 银() {
        cover();
    }

    @Override
    public void cover() {
        System.out.println("卡片升级--->银卡");
    }
}
9、测试类
代码语言:javascript
代码运行次数:0
运行
复制
public class Player {
    public static void main(String[] args) {
        游戏王卡 混沌战士 = new 游戏王卡();
        混沌战士.setMaterial(new 银());

        炉石卡 乌瑟尔 = new 炉石卡();
        乌瑟尔.setMaterial(new 金());
    }
}
10、测试结果
代码语言:javascript
代码运行次数:0
运行
复制
游戏王卡:我的回合,抽牌
卡片升级--->银卡
炉石卡:为了正义
卡片升级--->金卡

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.08.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 零、前言:将抽象化与实现化脱耦,使得二者独立的变化
    • 一图镇楼
  • 一、代码实现
    • 1、桥接模式UML
    • 2、卡片抽象类
    • 3、扑克牌
    • 4、游戏王卡片
    • 5、炉石卡
    • 6、材质接口
    • 7、金材质
    • 8、银材质
    • 9、测试类
    • 10、测试结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档