設計模式-橋接模式
阿新 • • 發佈:2018-05-24
設計模式 橋接模式
//職責
abstract class Command
{
public abstract int Run<T>(T t);
}
class Add : Command
{
public override int Run<T>(T t)
{
Console.WriteLine("add{0}",t.ToString());
return 0;
}
}
class Update : Command
{
public override int Run<T>(T t)
{
Console.WriteLine("update{0}", t.ToString());
return 0;
}
}
class Delete : Command
{
public override int Run<T>(T t)
{
Console.WriteLine("delete{0}", t.ToString());
return 0;
}
}
//實體類
bstract class Entity
{
protected Command command;
public void SetCommand(Command _command)
{
command = _command;
}
public abstract int Run();
}
class User : Entity
{
public string name { get; set; }
public int age { get; set; }
public override int Run()
{
return command.Run(this);
}
}
class Manager : Entity
{
public string name { get; set; }
public int age { get; set; }
public override int Run()
{
return command.Run(this);
}
}
//前端
static void Main(string[] args)
{
Command add = new Add();
Command update = new Update();
Command delete = new Delete();
Entity user = new User();
user.SetCommand(add);
user.Run();
user.SetCommand(update);
user.Run();
user.SetCommand(delete);
user.Run();
Console.ReadLine();
}
總結:DEMO不是很適合做橋接模式,但是完全實現了橋接模式。
橋接模式就是把抽象類和他的職責分離,重新把職責整個一個新的抽象,然後把職責註入到抽象類。
用到了聚合(合成)復用原則(能用聚合的盡量不要用繼承),符合單一,開閉原則。
優點:避免了繼承類的無線擴大,並且擴展性增強。
缺點:對業務理解不到位,可能被錯誤運用,就像DEMO。
設計模式-橋接模式