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

问题描述:

我想用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 
    } 
} 

或两个班分开,并使用*经理后缀...

**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”的类通常指向一些不太知名的设计。

我会去经典Repository-patterndependency-injection

这基本上是:

  • 获得与CRUD操作的接口
  • 注入这个具体实现的情况下,您需要他们,而不是使用的具体实现自己

我喜欢第二种方法,使用没有逻辑和管理器类的简单实体,事实上MS实体框架差不多相同,实体只有属性,DBContext生成允许您查询,添加和编辑实体。小提示:不要制作UserManager静态方法,类应该是一个具有实例方法的普通类,这样您可以轻松地进行测试并根据需要插入/。

小二注意:您不会以明文形式检索用户的密码或以明文形式将其存储在数据库中吗?!?! :D

+2

注意第二个......我们都已经完成了这个:)但是为了警告+1;) – Carsten