C#设计模式---概述篇
2005-06-22 20:37
330 查看
设计模式似乎很时髦,但却很实在,原因是他能使解决方案既优雅又简单,又可复用.设计模式似乎说的很玄,事实上,设计模式仅仅是一些在项目之间和程序之间复用面向对象代码的简便方法.背后的思想很简单,对通用的对象间的相互作用方式进行记录和编目.来对于武术来讲,这好比是套路,当然是经典还是MVC框架,框架的设计目标就是描述对象如何通信才能不牵涉相互的数据模型和方法,其实跟软件工程的高内聚低耦合的目标是一样的,这也模式追求的目标,也是面向对象追求的目标
刚才提到低耦合,就是分离类,包括封装和继承,对于继承,因为一个子类可以继承父类的所有方法和所有非私有变量,所以一个基类不写得太详细,这是设计模式的一条原则
“针对接口编程,而不是针对实现编程”
实际上,如果您做过winform并使用继承的话,有时候你会感觉头痛,因为C#只支持类的单继承,如果您继承的是窗体,那麻烦大了,如果基类有任何问题的,你的子窗体将不能重画显示
设计模式的第二条原则是
优先使用对象组合,而不是继承
如何理解这句话,很简单,还是实现低耦合的目标,去年的一个项目消息系统中,就犯了这方面的错误,当时没看这书吧:)
因为一个消息系统中包括底层socket,命令解释器,委托器,发送器,中间层以及GUI等,如果这方面的关系不处理好,做出来的系统结构相当差
如果您观察一下设计模式的例子,特别是观察者模式和中介者模式等,您会发现,它处处体现了上述两条设计模式的原则,请再次记住他们
1. 针对接口编程,而不是针对实现编程
2. 优先使用对象组合,而不是继承
刚才提到低耦合,就是分离类,包括封装和继承,对于继承,因为一个子类可以继承父类的所有方法和所有非私有变量,所以一个基类不写得太详细,这是设计模式的一条原则
“针对接口编程,而不是针对实现编程”
实际上,如果您做过winform并使用继承的话,有时候你会感觉头痛,因为C#只支持类的单继承,如果您继承的是窗体,那麻烦大了,如果基类有任何问题的,你的子窗体将不能重画显示
设计模式的第二条原则是
优先使用对象组合,而不是继承
如何理解这句话,很简单,还是实现低耦合的目标,去年的一个项目消息系统中,就犯了这方面的错误,当时没看这书吧:)
因为一个消息系统中包括底层socket,命令解释器,委托器,发送器,中间层以及GUI等,如果这方面的关系不处理好,做出来的系统结构相当差
如果您观察一下设计模式的例子,特别是观察者模式和中介者模式等,您会发现,它处处体现了上述两条设计模式的原则,请再次记住他们
1. 针对接口编程,而不是针对实现编程
2. 优先使用对象组合,而不是继承
相关文章推荐
- (原创)重学设计模式,总结C#细节 一 简单工厂模式
- C#中的委托和事件--5.委托、事件与Observer设计模式
- C#设计模式学习笔记-单例模式
- 设计模式之C#实现---Builder
- c# observer 设计模式
- 设计模式概述(卷一)
- 复杂对象的组装与创建——建造者模式(一):游戏角色设计,模式概述
- C# 设计模式-中介者(Mediator)
- C#设计模式(2)
- C#设计模式(13)-Proxy Pattern
- EJB 设计模式概述
- C#设计模式(1)——单例模式
- 乐在其中设计模式(C#) - 提供者模式(Provider Pattern)[转]
- 乐在其中设计模式(C#) - 提供者模式(Provider Pattern)
- C#设计模式- 观察者模式(4)
- 《模式——工程化实现及扩展》(设计模式C# 版)《中介者模式 Mediator》——“自我检验" 参考答案
- 初涉c#设计模式-Observer Pattern-从公司管理系统删单提醒开始
- C# 设计模式系列教程-适配器模式
- C# 设计模式系列教程-策略模式
- C#设计模式(7)——适配器模式(Adapter Pattern)