C# 实现设计模式应该不拘一格
2011-06-12 12:56
579 查看
如同每个人都有其个性一样,每种开发语言也有自己的个性。
项目中,我们固然可以机械地将一种语言的开发经验套用到另一种语言,但效果不一定好,因为:
· 语言有自己的短处:用短处去实现不仅费时费力,结果也不理想
· 语言有自己的长处:但为了沿用以前的经验削足适履,没有用到语言的精要,结果是暴殄天物
相信你也发现了,用一个语言写Hello world是一回事、写一个应用是一回事、写好一个应用则完全是另一回事,这就是工程化代码和“玩具”代码的区别。教科书上的知识落实到工程不能按图索骥,需要考虑开发语言和目标环境,设计模式也不例外。
也许你会觉用泛型、委托、事件、属性、配置文件等方式实现与《设计模式》介绍的内容不一致,但别忘了《设计模式》一书出版至今已近20年,其间无论是开发语言还是技术平台已经“换了人间”,GOF 23个模式的思想不仅影响着我们更影响着走在技术前沿的语言设计者、平台设计者,他们也在工作中潜移默化的把模式思想融入自己的工作成果,作为用户我们“推却”别人的盛情,所有事情都从“车轮”做起,多少有点不经济。
项目中,我们应该用最“C#”的方式将自己对于设计模式的理解铸入自己的成果,而且实现上务求简洁、直接。
项目中,我们固然可以机械地将一种语言的开发经验套用到另一种语言,但效果不一定好,因为:
· 语言有自己的短处:用短处去实现不仅费时费力,结果也不理想
· 语言有自己的长处:但为了沿用以前的经验削足适履,没有用到语言的精要,结果是暴殄天物
相信你也发现了,用一个语言写Hello world是一回事、写一个应用是一回事、写好一个应用则完全是另一回事,这就是工程化代码和“玩具”代码的区别。教科书上的知识落实到工程不能按图索骥,需要考虑开发语言和目标环境,设计模式也不例外。
也许你会觉用泛型、委托、事件、属性、配置文件等方式实现与《设计模式》介绍的内容不一致,但别忘了《设计模式》一书出版至今已近20年,其间无论是开发语言还是技术平台已经“换了人间”,GOF 23个模式的思想不仅影响着我们更影响着走在技术前沿的语言设计者、平台设计者,他们也在工作中潜移默化的把模式思想融入自己的工作成果,作为用户我们“推却”别人的盛情,所有事情都从“车轮”做起,多少有点不经济。
项目中,我们应该用最“C#”的方式将自己对于设计模式的理解铸入自己的成果,而且实现上务求简洁、直接。
相关文章推荐
- 设计模式之C#实现(三)FactoryMethod
- 《设计模式--基于C#的工程化实现及扩展》补充 Security Design Pattern 系列 1 公钥体系与分布式环境要求
- 《模式——工程化实现及扩展》(设计模式C# 版)《重新研读C#语言》——“自我检验" 参考答案:依赖注入部分
- 《模式——工程化实现及扩展》(设计模式C# 版)《迭代器模式 Iterator》——“自我检验" 参考答案
- 设计模式之C#实现(一)--AbstractFactory
- 从C#的Singleton设计模式实现看.NET Framework特性对开发者的重要性
- 【设计模式】单件模式 c#与c++实现
- 有关《模式——工程化实现及扩展(设计模式C# 版)》一书中多个章节示例代码中缺少空格的公告
- 设计模式-工厂模式(手工作坊到工业化的转变 c#实现)
- 《设计模式--基于C#的工程化实现及扩展》补充 Security Design Pattern 系列 1 公钥体系与分布式环境要求
- 设计模式之C#实现(三)FactoryMethod
- 利用C#实现游戏应用设计模式(编写周期2天)
- 《模式——工程化实现及扩展》(设计模式C# 版)《创建者模式 Builder》——正文完整示例
- 《模式——工程化实现及扩展》(设计模式C# 版)《桥模式 Bridge》——“自我检验"参考答案
- Singleton设计模式的C#实现(下)
- 在c#中实现消息订阅、派送设计模式
- 使用 C# (.NET Core) 实现命令设计模式 (Command Pattern)
- [每周特惠] 设计模式——基于C#的工程化实现及扩展+博客园2010T恤
- 《Effective C#》读书笔记——条目25:用事件模式实现通知<使用C#表达设计>
- 设计模式之C#实现(三)FactoryMethod