城堡里的夜空璀璨如斯,丽莎和艾瑞克站在城堡的最高塔上,远方有一座神秘的星桥横跨在两座山之间,仿佛连接了两个世界。这是一个传说中的魔法桥,可以将任何物质或魔法从一端传输到另一端,但核心的魔法结构和表面的物质形态是分离的。
丽莎想利用这座星桥来传输她新制作的魔法物品。然而,她希望物品的内部魔法和其外观能够独立变化,而不相互影响。
艾瑞克提议:“为什么不使用桥接模式呢?它可以将抽象部分与它的实现部分分离,使它们都可以独立地变化。”
// 魔法物品的抽象部分
abstract class MagicItem {
protected MagicCore magicCore;
public MagicItem(MagicCore core) {
this.magicCore = core;
}
abstract void activate();
}
// 魔法核心,即实现部分
interface MagicCore {
void applyMagic();
}
class Wand extends MagicItem {
public Wand(MagicCore core) {
super(core);
}
@Override
void activate() {
System.out.println("Wand is activated.");
magicCore.applyMagic();
}
}
class FireCore implements MagicCore {
@Override
public void applyMagic() {
System.out.println("Fire magic is applied.");
}
}
丽莎拿出一个魔法杖,将一个火核放入其中。当她挥舞魔法杖时,火焰飞舞。
“这就是桥接模式的魔力!” 丽莎惊叹道。
艾瑞克点点头:“这样,无论你如何改变魔法物品的外观或功能,其内部魔法都不会受到影响。”
两人望向星桥,它在夜空中闪烁,仿佛邀请他们去探索更多的魔法奥秘。