对象的方法可以自行处理吗?

ajs*_*sie 4 javascript ruby python oop design-patterns

我不知道在哪里放一些方法.

假设我想发送电子邮件.

我应该选择以下哪个选项:

email = new Email("title", "adress", "body");
email.send();
Run Code Online (Sandbox Code Playgroud)

要么

email = new Email("title", "adress", "body");
Postman.send(email);
Run Code Online (Sandbox Code Playgroud)

因为电子邮件怎么能自己发送?拥有处理所有电子邮件的中心对象并不是更好,因为他可以管理在特定时间发送所有电子邮件,排序邮件,删除邮件等内容.

此外,如果我想删除用户,我该怎么办:

user.delete();
Run Code Online (Sandbox Code Playgroud)

要么

administrator.delete(user);
Run Code Online (Sandbox Code Playgroud)

请分享您对如何知道放置方法的想法.

Dan*_*man 8

我不同意阿森尼.电子邮件可以发送自己,这正是代码应该存在的位置.这就是方法:可以对对象执行的操作.

但请注意,您的方法并非互不兼容.电子邮件的send操作可以很容易地包含将自己添加到邮递员发送队列的代码,如果您确实想要规范操作,那可能是个好主意.但是没有理由不send为电子邮件类提供方法.