合并到:https://17bang.ren/Code/806
Entity通常被翻译为“实体”,在面向对象的世界里,你可以把它理解为:映射现实世界“物体”的、带有特定信息(属性)的类(或者对象)。比如Student对应“学生”,需要用属性Name来存储这个学生的姓名、用Age来存储这个学生的年龄等等。
所有的业务逻辑都可以归结为entity的:
但这些方法放在哪里呢?
复习:静态和实例
一个实例对象可以把自己持久化么?自己保存自己,自己删除自己?或者找到最近注册的10个用户?
解决方案-1:使用静态方法,将持久化的职责赋给类而不是对象
比如:User.Register(user)
静态方法仍然存在的问题:
引入Repository,负责持久化,可以把Repository放置在业务类的:
个人更喜欢放在外面。为了方便UI层的调用,通常还引入Service层
Entity中的方法
public class User { public string Name { get; set; } public string Password { get; set; } public void ChangePassword(string newPassword) { Password = newPassword; } }
Repository
public class UserRepository { private static IList<User> _users = new List<User>(); //static UserRepository() //{ // _users = new List<User>(); //} public void Add(User user) { _users.Add(user); } public void Delete(User user) { _users.Remove(user); } public User GetBy(string name) { foreach (var item in _users) { if (item.Name == name) { return item; } } return null; } }三步走:
构建一个
为什么会有问题:
//User yfei = new User { Name = "叶飞" }; //repository.Add(yfei); //User atai = new User { Name = "阿泰" }; //new UserRepository().Add(atai); //User x = new UserRepository().GetBy("叶飞"); //Console.WriteLine(x.Name);
表
行
repository
存的就是对象(包含着信息)
IList:
静态
只读(private)
静态构造函数
改的特殊性
增删查 => Repoistory(仓储)
持久化(层) --> 磁盘/文件/数据库
实体:对象需要被持久化(存有数据)
通常都要有Id
多快好省!前端后端,线上线下,名师精讲
更多了解 加: