我只想对我一直在思考的这个问题有其他意见,例如我有 class user_controller 和 class user
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 更容易打字。
编辑:确实正在进行很好的转换,但我非常喜欢这里更多来自人们的信息。谢谢大家。
最佳答案
是的,您应该在模型中保留逻辑!也就是说,如果您进行实际的面向对象编程(看起来像您这样做)。引用Wikipedia :
Object-oriented programming (OOP) is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs.
如果您尝试进行域驱动设计(您的标签暗示),则尤其如此。 DDD 就是用对象来表达你的领域。
Martin Fowler says putting the logic outside your model is an anti-pattern.
关于java - 我的模型类或其他类中应该有逻辑吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9884891/