此篇已收录至《你必须知道的.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(); } }