toy*_*toy 5 ruby java design-patterns domain-driven-design
我只是希望得到关于这个我一直在辩论的其他意见,例如我有类user_controller和类用户
class User
attr_accessor :name, :username
end
class UserController
// do something about anything about users
end
问题是我的User类中应该有逻辑吗?
user = User.new
user.do_something(user1)
or it should be
user_controller = UserController.new
user_controller.do_something(user1, user2)
我不确定哪一个是最好的设计,我个人非常喜欢第一个,所以例如它会读起来像
john = User.new
john.accept_friend(jane)
instead of
user_controller = UserController.new
user_controller.accept_friend(john, jane)
这些模式的优缺点是什么?这不仅仅是针对Ruby的,因为我的东西ruby在打字时更容易.
编辑:真的有很好的转换,但我更喜欢这里的人.感谢大家.
是的,您应该在模型中保留逻辑!也就是说,如果你做了实际的面向对象编程(看起来像你那样).引用维基百科:
面向对象编程(OOP)是一种使用"对象"的编程范例 - 由数据字段和方法及其交互组成的数据结构 - 用于设计应用程序和计算机程序.
如果您尝试进行域驱动设计(您的标签意味着),则尤其如此.DDD就是用对象来表达你的域名.
Martin Fowler表示,将逻辑置于模型之外是一种反模式.
| 归档时间: |
|
| 查看次数: |
1829 次 |
| 最近记录: |