1. 程式人生 > >設計模式-橋接模式

設計模式-橋接模式

設計模式 橋接模式

//職責 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。

設計模式-橋接模式