设计模式是编程语言能力弱的表现

http://jack.lifegoo.com/?p=8

设计模式是编程语言能力弱的表现(Patterns are signs of weakness in programming languages)
http://blog.plover.com/2006/09/11/index.html

按照这篇文章的分析,就是这么一回事情。

一篇文章有许多评论,一个文件夹有许多文件,一个公司有许多人。。。在这类一对多的情形中,我们往往都需要统计评论数,文件数,人数。这样的情况反复出现,难道不应该有一种“模式”来统一处理吗?

一个帖子(post)有许多评论(comments):
[code]class Post < ActiveRecord::Base
has_many :comments
end

class Comment < ActiveRecord::Base
belongs_to :post,:counter_cache=>true
end[/code]


每增加一个评论,则帖子的评论数应该增加一,若删除一个评论,则评论数应该减少一。
counter_cache=>true这个命令,就是告诉ror按照上面的规则去做事情。

我们只需要处理评论的创建删除等等就可以了,不必去关心评论数的处理(ror帮你完成了)

由此可见,RoR与其说是一种框架,不如说是一种增强了的编程语言:把上面的反复出现的情况,以“模式”的形式融入了RoR中,用一个简单的counter_cache=>true命令,就搞定了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值