【设计模式无难事】——Bridge模式
一、意图
桥接模式,顾名思义,这里有一个“桥”。。。
为什么需要一个“桥”呢?
我们用它来连接什么呢?
下面先看一个例子
二、例子
需求场景
在游戏中,玩家使用武器砍怪时,战斗的特效的实现
武器:宝剑、铁锤
特效:吸魂、回旋飞
分析&实作
桥接模式实现
1,所有的特效都包括:激活,运用,消失。于是我们定义一个特效接口
Enchantment.java
/**
*
* Enchantment 施魔法
*
*/
public interface Enchantment {
void onActivate();
void apply();
void onDeactivate();
}
2,接着我们做一个吸魂的特效
SoulEatingEnchantment.java
/**
*
* SoulEatingEnchantment
* 吸魂
*/
public class SoulEatingEnchantment implements Enchantment {
private static final Logger LOGGER = LoggerFactory.getLogger(SoulEatingEnchantment.class);
@Override
public void onActivate() {
LOGGER.info("物体变得嗜血起来!");
}
@Override
public void apply() {
LOGGER.info("物体吸收敌人的魂魄!");
}
@Override
public void onDeactivate() {
LOGGER.info("嗜血状态慢慢消失了!");
}
}
3,接下来,回旋飞特效
FlyingEnchantment.java
/**
*
* FlyingEnchantment
* 回旋飞
*/
public class FlyingEnchantment implements Enchantment {