Rails 请教一个关于对象和数据结构的问题

zlx_star · 2012年06月11日 · 最后由 fredwu 回复于 2012年06月11日 · 1925 次阅读

近来在看 robert 大叔的 clean code 时有一点很困惑。 在 rails 里面,model 是对于数据库表的一种数据抽象,那自然是一种数据结构,按照 robert 大叔的说法,数据结构暴露数据,没有明显的行为,可实际上,model 中并不会缺少行为方法(实际上,在我做过的项目中,大量的处理逻辑都在 model 中)。这样说来,是否这种设计并不符合 robert 大叔的要求?那如何才能做到像 robert 大叔说的对象暴露行为,隐藏数据;数据结构暴露数据,没有明显的行为;而不是把它们混杂在一起?另外,如何理解没有明显的行为这句话?取值和设值方法算是明显的行为吗?

对的,ActiveRecord 在 Rails 中的一般用法是“错误”的。

你可以参考 James Golick 的 Objectify gem:https://github.com/bitlove/objectify

需要 登录 后方可回复, 如果你还没有账号请 注册新账号