此篇已收录至《你必须知道的.Net》读书笔记目录贴,点击访问该目录可以获取更多内容。

  (1)核心思想:一个类最好只做一件事,只有一个引起它变化的原因

  (2)常用模式:Facade模式、Proxy模式

  (3)基本方法:Extract Interface 抽取接口、Extract Class 抽取类、Extract Method 抽取方法

  (4)DEMO:数据库管理系统中根据不同权限进行CRUD操作(这里是使用Proxy模式重构后的代码)

    public interface IDBAction
    {
        void Add();
        bool Delete();
        void View();
    }

    public class DBManager : IDBAction
    {
        public DBManager(string id)
        {
        }

        public void Add()
        {
            //执行数据增加
            Console.WriteLine("增加数据成功。");
        }

        public bool Delete()
        {
            //执行数据删除
            return true;
        }

        public void View()
        {
            //执行数据查看
        }
    }

    public class DBManagerProxy : IDBAction
    {
        private string id;
        private IDBAction dbManager;

        public DBManagerProxy(IDBAction dbAction)
        {
            dbManager = dbAction;
        }

        //处理权限判断的逻辑
        public string GetPermission(string id)
        {
            return null;
            //return "CanAdd";
        }

        public void Add()
        {
            if (GetPermission(id) == "CanAdd")
            {
                dbManager.Add();
            }
        }

        public bool Delete()
        {
            if (GetPermission(id) == "CanDelete")
            {
                dbManager.Delete();
            }

            return true;
        }

        public void View()
        {
            if (GetPermission(id) == "View")
            {
                dbManager.View();
            }
        }
    }

    public class DBClient
    {
        public static void Main()
        {
            IDBAction DBManager = new DBManagerProxy(new DBManager("CanAdd"));
            DBManager.Add();
        }
    }
View Code

相关文章:

  • 2021-08-28
  • 2022-02-26
  • 2021-12-19
  • 2022-02-14
  • 2021-12-07
  • 2022-02-24
  • 2022-03-04
  • 2021-12-15
猜你喜欢
  • 2021-08-03
  • 2022-12-23
  • 2021-10-15
  • 2022-02-15
  • 2022-02-25
  • 2021-08-06
相关资源
相似解决方案