C#类和方法

Mar*_*ijn 4 c# oop

我发现很难确定类的责任:我是否必须将此方法放在这个类中,还是应该将此方法放在另一个类中?例如,假设一个带有id,forname,lastname和password的简单User类.现在你有了一个userId并且你想要forname和lastname,所以你创建了一个方法,如:public User GetUserById(int id){}.接下来,您要显示所有用户的列表,因此您创建另一个方法:public List GetAllUsers(){}.并且您想要更新,删除和保存用户.这给了我们5种方法:

public bool SaveUser(User user);
public bool UpdateUser(User user);
public bool DeleteUser(User user);
public User GetUserById(int id);
public List<User> GetAllUsers();
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:你把所有这些方法放在User类中吗?或者您是否创建了另一个可以连接到数据库并包含所有这些方法的数据类(UserData类)?

Ste*_*ock 7

您在此处描述的内容基本上是Active Record PatternRepository Pattern之间的选择.我建议您阅读这些模式,并选择适合您的应用程序/体验/工具集的模式.


Fre*_*els 5

我不会将这些特定方法放入"用户"类中.

这个"问题"有两种常见的方法:

  • 您将这些方法放在User类中,然后这意味着您正在使用Active Record 模式
  • 例如,您将这些方法放在一个单独的类(UserRepository)中,然后使用 Repository模式.

我更喜欢存储库方法,因为这样可以保持我的"用户"类干净,并且不会使用数据访问代码使其混乱.