桥接模式
对象的继承关系在编译前就已经确定好了,如果继承下来的实现不适合解决问题,则父类必须重写或者被替换。
优先使用合成/聚合原则。
实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让他们独立变化,减小他们之间的耦合。
例如手机 可以按照 品牌分类,也可以按照软件 分类
手机品牌 <>---------------------手机软件
abstract class HandSoft //手机软件
{
public abstract void Run();
}
//按照手机软件分类
//手机游戏
class HandSetGame : HandSoft
{
public override void Run()
{
//运行手机游戏
}
}
//手机通讯录
class HandSetAddressList : HandSoft
{
public override void Run()
{
//运行手机通讯录
}
}
//手机品牌类
abstract class HandsetBrand
{
protected HandSoft soft;//维护导入的手机软件
public void SetHandsetSoft(HandSoft soft)//外界导入 手机软件
{
this->soft = soft;
}
public abstract void Run();//运行
}
//手机品牌N
class HandsetBrandN : HandsetBrand
{
public override void Run() //具体子类的Run
{
soft.Run();
}
}

浙公网安备 33010602011771号