作者: 倪大虾 发表于 2010-07-18 18:10 原文链接 阅读: 725 评论: 20
今天吃小龙虾的时候忽然想到了以前一个湖北朋友讲的虾的故事.这位朋友是湖北人,据他说在他小时候他们那里很多虾,特别是夏天雨后,满地爬的都是.因为传说那是美国对付中国的秘密武器,居然没有人敢吃.后来偶然有人提了半桶换卖了5块钱回来,慢慢的大家认识到虾的价值,随后就有了今天吃得五香小龙虾.然而近几年出现的"洗虾粉"又让人心有余悸.回想起昨天看到亚力山大<召集讨论设计模式是语言表达能力低下的产物>一贴.突然发现设计模式和虾居然有相似的命运.
设计模式从出现到发展,到普及再到今天,人们对它的认识也同样经过了"陌生"->"认识使用"->"批评".设计模式在程序员心目的地位中也经历了"新奇"->"圣经"->"怀疑".然而,不管人们如何认识龙虾,从始至终虾还是虾,没有变过.同样,设计模式自出现现到今天,一样没有变,变得只是次第更新的软件设计开发技术,变得只是一代又一代的程序员.
设计模式是20世纪60-70年代的软件危机之后大规模软件的发展的结果.这里有个问题,什么是设计模式.相比能够真正回答正确的人不多,真正理解的人也不多,因此经历的辉煌之后随之而来的怀疑就不可避免了,不过也正是这些批判怀疑促进了设计模式更进一的发展.
什么是设计模式,我也无法给出权威的答案,不过我敢肯定,设计模式不是<gof23种设计模式>中的UML图,也不是一行行的示例代码,它有的只是一种思想,一种思考问题的方式,就像<加勒比海盗>中的<海盗法典>,它只是指导,而并非律法.
既然只是一种指导,那么在使用的时候就应当根据实际情况使用它或不使用它,用一种方法实现它或用另外一种方法实现它.指导告诉我们一个解决问题的方向,而例子告诉我们到达目的地众多路径中的一条,它可能是最优,也可能是最差.<gof23种设计模式>一书不仅详细的表达了什么是设计模式,而且有很多生动的例子.这些例子用来具体说明每种设计模式.然而在今天看来,那些Smalltalk或C++的例子却成了一幅无形的枷锁,让很多人去套用而不知道因地制宜的发散扩展.比如当不断的用if ...else if选择工厂或策略的时候,就不会想到在.NET中可以使用反射来去掉让人生厌的if...else.
今天讨论的是.NET中的设计模式.大家都知道设计模式出现时还没有.NET,Gof不可能预见会有C#的出现,写论文的时候也不可能知道有反射,委托,事件等技术的出现.因而亚历山大同志单凭"比如C#内置了事件机制,那么Observer还有意思"就认为设计模式已过时就显得过于武断了.
.NET中有很多特性使得设计模式的实现更加简单,然而并不是说一定要用这些特性来实现设计模式,,就好比有了乘法,有时候我们用加法实现1+1=2可能更好,你不能因此而否定了乘法.同样,既然"事件"能够实现"Observer"的效果,那么一个事件不正是一个Observer吗?Observer不是加入到.NET中了吗!它只不过换了个名字,本质没有变.
所以说我们在用设计模式的时候首先应该深入挖掘语言的潜力,而后结合设计模式的思想,创造独有的应用设计模式.或许在C++中实现一个Observer有很多行代码,在.NET中一行即可.书中的例子只是学习的一种途径,没有创新,生搬硬套只能是鹦鹉学舌,邯郸学步,最终也只是贻笑大方了.
评论: 20 查看评论 发表评论
百度期待您的加盟
最新新闻:
· 微软不为外界所知的十件趣事(2010-07-18 22:58)
· 中国第2季搜索引擎市场规模达26亿 百度破70%(2010-07-18 22:54)
· Facebook用户数下周达5亿 邀请用户共享故事(2010-07-18 22:49)
· 开源的可视化编辑器 KindEditor 3.5.1 发布(2010-07-18 22:35)
· WordPress 陷入开源‘边界’之争(2010-07-18 17:47)
编辑推荐:揭秘Facebook背后的那些软件
网站导航:博客园首页 个人主页 新闻 闪存 小组 博问 社区 知识库
分享到:
相关推荐
龙虾养殖远程监控系统设计与实现数据采集上位机软件模块 本文主要介绍了龙虾养殖远程监控系统的设计与实现,特别是数据采集上位机软件模块的设计与实现。该系统基于CAN总线,采用高效现代化设施农业改造,实现了...
三年级日记-吃龙虾.docx
创意线描--可爱的大龙虾
### 小龙虾市场分析与展望 #### 一、小龙虾市场概述 小龙虾作为一种风靡全国的美食,在近几年经历了从火爆到逐渐冷静的过程。本报告旨在深入分析小龙虾市场的变化趋势,并探讨其未来发展之路。 #### 二、小龙虾...
在这款游戏中,玩家通过鼠标控制一只可爱的龙虾移动,目标是让龙虾吃到场景中的小辣椒。这种设计体现了Pygame中的基本游戏机制,如游戏角色的移动、碰撞检测和得分系统等。 1. **角色控制**:在Pygame中,可以创建...
当前基于STM32单片机设计了一款小龙虾养殖系统。该系统能够实现水温、混浊度、电导率、水位等参数的测量,并通过OLED液晶显示屏进行显示。当数据超过设定阈值时,系统会语音提示警告。同时,该系统还配备了手机APP,...
龙虾养殖远程监控系统的设计与实现 - 数据采集上位机软件模块 本文档是关于龙虾养殖远程监控系统的设计与实现,特别是数据采集上位机软件模块的设计与实现。该系统基于 CAN 总线,采用多种传感器技术和远程控制技术...
总结来说,此活动方案充分利用了小龙虾这一夏季热门食材,结合音乐和文化元素,设计了一系列互动性强、参与度高的活动,旨在打造一个集美食、娱乐、文化于一体的夏日盛宴,以吸引并留住目标客群,提升商业活动的经济...
《2020-地生活小龙虾数字化消费报告》是由地生活大学在2020年7月发布的,这份20页的精品报告深入探讨了小龙虾市场在数字化趋势下的消费者行为、市场规模、行业动态以及未来发展趋势。以下是报告中的关键知识点: 1....
由于提供的文件信息中,【标题】和【描述】的文本完全相同,且没有实际的可识别内容,仅包含了重复的网址链接,并且在【部分内容】中也出现了相同的链接,这暗示着内容可能是非文本形式(例如图片或扫描文档),并且...
5. **餐饮市场**:小龙虾在餐饮业中的应用广泛,报告可能会深入研究小龙虾餐饮的消费趋势、热门菜品、品牌竞争格局以及价格波动等。 6. **消费者行为分析**:报告可能会探讨消费者的口味偏好、购买习惯、价格敏感度...
但是,基于标题中的关键信息“2020-地生活小龙虾数字化消费报告”,我可以推断并展开与该主题相关的知识点。 标题中提到的“小龙虾”是近年来非常流行的一类美食,尤其在中国各地的夜市和餐馆中备受欢迎。小龙虾...
首先,我们需要了解如何在VB.NET中生成随机数。VB.NET提供了`Random`类来生成随机数。创建一个`Random`对象后,你可以调用它的`Next`方法来获取一个指定范围内的随机整数。例如: ```vbnet Dim random As New ...
在小龙虾育苗过程中,物联网技术的应用能够实时统计分析病虫害的发生状况和生长环境因子状况,通过这些数据对龙虾的整体状态进行准确判断,并结合专家系统中的生长模型进行生长环境调控和病虫害预防。物联网技术也...
【龙虾养殖远程监控系统设计】 在现代农业中,精细化养殖已经成为提高经济效益的重要途径,尤其在特色水产养殖领域,如龙虾养殖。淮安信息职业技术学院的毕业论文项目“龙虾养殖远程监控系统的设计与实现——数据...
2018-2019中国小龙虾产业研究与商业投资决策分析报告.pdf
【龙虾养殖远程监控系统设计】本系统是针对江苏盱眙龙虾养殖基地设计的精细化养殖解决方案,利用了计算机科学与工程以及电子技术,旨在提高水产养殖的经济效益。系统核心采用了CAN(Controller Area Network)总线...
本篇论文主要完成龙虾养殖远程监控系统中上位机数据采集模块的设计与实现。该模块通过 CAN 总线实现了对现场多种传感器的数据读取,同时根据系统的设定自动或手动的启动养殖水域的各种电气设备。 在这个过程中依赖 ...
这份由本地生活大学发布的报告深入探讨了消费者行为、市场规模、线上平台影响力以及餐饮业如何利用数字技术提升小龙虾业务。 一、小龙虾市场概述 小龙虾作为一种广受欢迎的美食,在中国的餐饮市场占有重要地位。...