这里讲述的是一个敌人和武器的故事,敌人有很多种吧,每种敌人拿不同的武器产生的效果不一样吧。所以使用桥接模式,方便添加新的敌人,添加新的武器,也方便敌人更改正在使用的武器。
public abstract class AWeapon { public abstract void Attack(); }
public abstract class AEnemy { private AWeapon mWeapon; public AEnemy(AWeapon weapon) { mWeapon = weapon; } public void SetWeapon(AWeapon weapon) { mWeapon = weapon; } public void Attack() { mWeapon.Attack(); } }
using UnityEngine; public class Knife : AWeapon { public override void Attack() { Debug.Log("使用刀发起攻击"); } }
using UnityEngine; public class Sword : AWeapon { public override void Attack() { Debug.Log("使用剑发起攻击"); } }
using UnityEngine; public class testQiaojie : MonoBehaviour { void Start () { Sword sword = new Sword(); FirstEnemy firstEnemy = new FirstEnemy(sword); firstEnemy.Attack(); //更换武器攻击 Knife knife = new Knife(); firstEnemy.SetWeapon(knife); firstEnemy.Attack(); } }
这样子的话,如果需要添加新的敌人的话,只需要继承AEnemy就可以了,然后给予适合的武器,这样一个活生生的新敌人就产生了,换一换武器,然后就更牛逼了。