博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式-桥接模式
阅读量:6690 次
发布时间:2019-06-25

本文共 1925 字,大约阅读时间需要 6 分钟。

//职责abstract class Command    {        public abstract int Run
(T t); } class Add : Command { public override int Run
(T t) { Console.WriteLine("add{0}",t.ToString()); return 0; } } class Update : Command { public override int Run
(T t) { Console.WriteLine("update{0}", t.ToString()); return 0; } } class Delete : Command { public override int Run
(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。

转载于:https://blog.51cto.com/5591787/2119636

你可能感兴趣的文章
测试开发题目
查看>>
[USACO3.2]Sweet Butter
查看>>
关于三角形的一个不等式
查看>>
Elementary Methods in Number Theory Theorem 1.1 Division algorithm
查看>>
<10>获取当前时间
查看>>
Jenkins的构建编号和一个有趣的bug
查看>>
EF添加关联的提示问题:映射从第 260 行开始的片段时有问题:
查看>>
【JDK1.8】JUC——AbstractQueuedSynchronizer
查看>>
2.可变与不可变
查看>>
PCI Express(三) - A story of packets, stack and network
查看>>
ThinkPHP中添加事件机制
查看>>
OO第一单元总结
查看>>
求1到n,n个整数的全排列
查看>>
PHP7 教程
查看>>
虚拟机VMBox的空间扩展和对加载进来资源的扩展
查看>>
《结对-结对编项目作业名称-需求分析》
查看>>
iView3.x Anchor(锚点)组件 导航锚点
查看>>
Network --- Tcp Protocol
查看>>
sqlite效率探测
查看>>
React生命周期
查看>>