锁定老帖子 主题:设计模式是编程语言能力弱的表现
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-03
设计模式是编程语言能力弱的表现(Patterns are signs of weakness in programming languages) http://blog.plover.com/2006/09/11/index.html 按照这篇文章的分析,就是这么一回事情。 一篇文章有许多评论,一个文件夹有许多文件,一个公司有许多人。。。在这类一对多的情形中,我们往往都需要统计评论数,文件数,人数。这样的情况反复出现,难道不应该有一种“模式”来统一处理吗? 一个帖子(post)有许多评论(comments): class Post < ActiveRecord::Base has_many :comments end class Comment < ActiveRecord::Base belongs_to :post,:counter_cache=>true end 每增加一个评论,则帖子的评论数应该增加一,若删除一个评论,则评论数应该减少一。 counter_cache=>true这个命令,就是告诉ror按照上面的规则去做事情。 我们只需要处理评论的创建删除等等就可以了,不必去关心评论数的处理(ror帮你完成了) 由此可见,RoR与其说是一种框架,不如说是一种增强了的编程语言:把上面的反复出现的情况,以“模式”的形式融入了RoR中,用一个简单的counter_cache=>true命令,就搞定了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-03
伪命题。lz要搞清楚 什么是设计模式,什么是程序语言表达能力。
|
|
返回顶楼 | |
发表时间:2007-01-03
:counter_cache=>true 也由于失效的时候。
|
|
返回顶楼 | |
发表时间:2007-01-04
换个提法就比较好接受一点:
设计模式是对语言弱点的增强 |
|
返回顶楼 | |
发表时间:2007-01-04
什么是模式,是在长期的编程实践中总结的一些习惯用法。所以什么语言都会产生模式,而跟语言表达能力关系不大。
|
|
返回顶楼 | |
发表时间:2007-01-05
呼呼,LZ的题目和内容风马牛不相及啊
|
|
返回顶楼 | |
发表时间:2007-01-05
不过回头看看GoF的23个模式,有不少模式是在跟C++/Java僵硬的语言特性做斗争。
|
|
返回顶楼 | |
发表时间:2007-01-17
我不认为LZ的观点
|
|
返回顶楼 | |
发表时间:2007-01-17
gigix 写道 不过回头看看GoF的23个模式,有不少模式是在跟C++/Java僵硬的语言特性做斗争。
不错,那些经典的设计模式中的大部分,脱离了C++/Java这个语言环境,实在是没有什么意义。 |
|
返回顶楼 | |
发表时间:2007-01-17
设计模式提供了表达那些无法直接在编程语言中表达的概念的词汇表。
|
|
返回顶楼 | |