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

mac2022-06-30  128

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

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

一图镇楼
桥接模式.png

一、代码实现

1、桥接模式UML
桥接模式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、测试结果
游戏王卡:我的回合,抽牌 卡片升级--->银卡 炉石卡:为了正义 卡片升级--->金卡

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

转载于:https://www.cnblogs.com/toly-top/p/9781946.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)