桥接模式实例

这里讲述的是一个敌人和武器的故事,敌人有很多种吧,每种敌人拿不同的武器产生的效果不一样吧。所以使用桥接模式,方便添加新的敌人,添加新的武器,也方便敌人更改正在使用的武器。

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就可以了,然后给予适合的武器,这样一个活生生的新敌人就产生了,换一换武器,然后就更牛逼了。


首页 我的博客
粤ICP备17103704号