重构——14隐藏“委托关系”(Hide Delegate)

简介: 隐藏“委托关系”(Hide Delegate):客户通过一个委托类来调用另一个对象;在服务类上建立客户所需的所有函数,用以隐藏委托关系

隐藏“委托关系”(Hide Delegate)

客户通过一个委托类来调用另一个对象;在服务类上建立客户所需的所有函数,用以隐藏委托关系

一、动机

1、封装意味着每个对象都应该尽量少的了解系统的其它部分,如此一来,一旦发生变化,需要了解这一变化的对象就会比较少--这会使变化容易进行

2、减少对象依赖

二、做法

1、对于每一个委托关系中的函数,在服务对象端建立一个简单的委托函数

2、调整客户,令它只调用服务对象提供的函数

3、每次调整后,编译并测试

4、如果将来不再有任何客户需要取用Delegate,便可移除服务对象中的相关访问函数

5、编译,测试

目录
相关文章
|
安全 编译器 C#
C#基础知识学习之 ✨ 委托(delegate) 与 事件(event) 之间的介绍
委托(delegate) 与 事件(event) 🔥 前言🙏 在之前的文章里介绍了C#中的委托(delegate) (Action、Func、Predicate)的基本含义及用法 那本篇文章在这里还要介绍一个跟委托有很大关系的小伙伴——C#中的 事件(event)🎅 事件跟委托是有很大联系的,所以也就导致很容易分不清他们两个,以及什么时候用这两个 上面有博客提到委托,想单独了解委托的可以去看一下,本篇文章主要说一下 什么是事件 🎄 以及 事件与委托的区别🎁
C#基础知识学习之 ✨ 委托(delegate) 与 事件(event) 之间的介绍
|
设计模式 缓存 前端开发
理清Activity、View及Window之间关系
理清Activity、View及Window之间关系
|
Web App开发 前端开发 iOS开发
使用 tabindex 配合 focus-within 巧妙实现父选择器
使用 tabindex 配合 focus-within 巧妙实现父选择器
167 0
|
存储 安全 C语言
【iOS 开发】Objective - C 面向对象 - 方法 | 成员变量 | 隐藏封装 | KVC | KVO | 初始化 | 多态(一)
【iOS 开发】Objective - C 面向对象 - 方法 | 成员变量 | 隐藏封装 | KVC | KVO | 初始化 | 多态(一)
215 0
|
Java iOS开发
【iOS 开发】Objective - C 面向对象 - 方法 | 成员变量 | 隐藏封装 | KVC | KVO | 初始化 | 多态(二)
【iOS 开发】Objective - C 面向对象 - 方法 | 成员变量 | 隐藏封装 | KVC | KVO | 初始化 | 多态(二)
141 0
|
开发者 Python
隐藏类中的属性|学习笔记
快速学习 隐藏类中的属性
135 0
|
程序员 Android开发
有关自定义View的学习(View的点击事件传递流程)
1、安卓OnTouchListener,onTouchEvent,onClickListener执行顺序 首先我们相对比较熟悉的是处理滑动冲突时候的三个事件(ViewGroup 继承 View) (View是没有onInterceptTouchEvent方法的),先看看ViewGroup和View的事件流程方法: ViewGroup 1.
1187 0
|
前端开发
利刃 MVVMLight 2:Model、View、ViewModel结构以及全局视图模型注入器的说明
原文:利刃 MVVMLight 2:Model、View、ViewModel结构以及全局视图模型注入器的说明      上一篇我们已经介绍了如何使用NuGet把MVVMLight应用到我们的WPF项目中。
1037 0