键盘敲烂,月薪过万作业不做,等于没学
当前系列: 垃圾桶 修改讲义

合并到:https://17bang.ren/Code/806


Entity

Entity通常被翻译为“实体”,在面向对象的世界里,你可以把它理解为:映射现实世界“物体”的、带有特定信息(属性)的类(或者对象)。比如Student对应“学生”,需要用属性Name来存储这个学生的姓名、用Age来存储这个学生的年龄等等。


Repository之前

所有的业务逻辑都可以归结为entity的:

  • 注册:增
  • 登录:查
  • 修改密码:改
  • 注销:删

但这些方法放在哪里呢?

复习:静态和实例

一个实例对象可以把自己持久化么?自己保存自己,自己删除自己?或者找到最近注册的10个用户?

解决方案-1:使用静态方法,将持久化的职责赋给类而不是对象

比如:User.Register(user)




Repository模式

静态方法仍然存在的问题:

  • 静态丢失了面向对象的特征
  • 类的职责不单一:业务类同时有持久化的功能

引入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;
        }
    }
三步走:
  1. 取出对象
  2. 修改对象  (调用对象本身的方法)
  3. 把对象放回仓库

模拟数据源

构建一个

为什么会有问题:

            //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


学习笔记
源栈学历
大多数人,都低估了编程学习的难度,而高估了自己的学习能力和毅力。

作业

觉得很 ,不要忘记分享哟!

任何问题,都可以直接加 QQ群:273534701

在当前系列 垃圾桶 中继续学习:

下一课: 课程改革

多快好省!前端后端,线上线下,名师精讲

  • 先学习,后付费;
  • 不满意,不要钱。
  • 编程培训班,我就选源栈

更多了解 加:

QQ群:273534701

答疑解惑,远程debug……

B站 源栈-小九 的直播间

写代码要保持微笑 (๑•̀ㅂ•́)و✧

公众号:源栈一起帮

二维码