用于存储用户的类命名约定和结构

本文关键字:命名约定 结构 存储 用户 用于 | 更新日期: 2023-09-27 18:09:05

我想做一个类的函数像Add(), Delete()等在数据库中存储用户。

那么,什么是更好的命名约定和结构呢?

在一个类中:

**EXAMPLE**
User.Add("Username", "Password");
User user = User.GetUser();
class User
{
    public User(string username, string password)
    {
        Username = username;
        Password = password;
    }
    public string Username { get; set; }
    public string Password { get; set; }
    public static void Add(string username, string password)
    {
        //Add user to database
    }
    public static User GetUser()
    {
        //Get user from database
    }
}

或分隔为两个类并使用*Manager后缀…

**EXAMPLE**
UserManager.Add("", "");
User user = UserManager.GetUser();
class UserManager
{
    public static void Add(string username, string password)
    {
        //Add user to database
    }
    public static User GetUser()
    {
        //Get user from database
    }
}
class User
{
    public User(string username, string password)
    {
        Username = username;
        Password = password;
    }
    public string Username { get; set; }
    public string Password { get; set; }
}

或者两个例子都不好,你有一个更好的?

用于存储用户的类命名约定和结构

名称为"manager"的类通常指向一些不为人所知的设计。

我会使用经典的存储库模式和依赖注入。

基本上就是:

  • 获取CRUD操作的接口
  • 在需要的地方注入具体实现的实例,而不是自己使用具体实现

我更喜欢第二种方式,使用没有逻辑和管理器类的简单实体,实际上MS实体框架或多或少是相同的,实体只有属性,生成的DBContext允许您查询,添加和编辑实体。

小提示:不要将UserManager的方法设置为静态的,类应该是带有实例方法的普通类,这样你可以很容易地进行测试,并在需要时注入。

第二个小注意:你不打算检索用户的密码在明文或存储在数据库中的明文对吗?: D