gpt4 book ai didi

java - 我的模型类或其他类中应该有逻辑吗

转载 作者:数据小太阳 更新时间:2023-10-29 07:13:00 27 4
gpt4 key购买 nike

我只想对我一直在思考的这个问题有其他意见,例如我有 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com