【发布时间】:2013-05-26 07:08:07
【问题描述】:
假设我有一个方法 GetAllEmails() 从数据库中检索所有电子邮件。问题是我应该把方法放到哪个类?
许多资料,甚至教科书,都建议它应该放在Email 类中,但从逻辑上讲,电子邮件不应该知道如何获取所有电子邮件,我认为它应该放在这样的电子邮件管理器或助手类中语境。有意见吗?
【问题讨论】:
假设我有一个方法 GetAllEmails() 从数据库中检索所有电子邮件。问题是我应该把方法放到哪个类?
许多资料,甚至教科书,都建议它应该放在Email 类中,但从逻辑上讲,电子邮件不应该知道如何获取所有电子邮件,我认为它应该放在这样的电子邮件管理器或助手类中语境。有意见吗?
【问题讨论】:
Repository 设计模式通常用于此目的,因此在您的情况下,它将是 EmailRepository(或类似的)类获取电子邮件。
【讨论】:
方法GetAllEmails() 必须连接到数据库并获取一些数据。所以我会把它放在一个与数据库相关的类中。这实际上取决于您正在编写哪种类型的应用程序,例如,如果您有一些其他方法可以连接到数据库并获取其他一些数据,那么您可以将它们全部放在一个类中。但是,如果您只连接到数据库以获取电子邮件,那么您可以在您的电子邮件类中拥有一个数据库子类。
【讨论】: