桥接模式非常适合于换装系统,比如说什么野蛮人拿斧子,野蛮人拿木棒,野蛮人拿钉头槌,弓箭手拿弓箭,弓箭手拿十字弓,弓箭手拿火枪……多了去了的组合,都可以用桥接模式实现。
使用方法非常简单,但是最好在设计整个系统前想好了,而不是之后修改。
首先,创建一个武器的接口:
namespace BridgePattern
{
interface IWeapon
{
void OperationImpl();
}
}
然后,新建一个武器,实现这个接口:
namespace BridgePattern
{
class WeaponA : IWeapon
{
public void OperationImpl() { }
}
}
武器有了,新建一个Man类,这是所有角色的基类:
namespace BridgePattern
{
abstract class Man
{
protected IWeapon iWeapon;
public Man(IWeapon iWeapon)
{
this.iWeapon = iWeapon;
}
public void Operation()
{
iWeapon.OperationImpl();
}
}
}
新建Archer类(弓箭手),代码如下:
namespace BridgePattern
{
class Archer : Man
{
public Archer(IWeapon iWeapon) :
base(iWeapon)
{
}
public void OtherOperation() { }
}
}
我们看,Man组合了IWeapon,在使用它的东西,这样,桥接模式搭建完成。
另:像洛克人这种人与武器是一对多的关系,可以考虑用装饰者模式,把武器当成装饰,装饰给洛克人,具体在这篇文章不详细讨论。
370

被折叠的 条评论
为什么被折叠?



