Delegation 委托
1. 对象不在rep里
Dependecy 依赖
在方法参数或者局部变量中
class Duck
{
//no field to keep Flyable objectvoid fly(Flyable f) {f.fly();}
}
2.对象在rep中
2.1 在rep中初始化:Composition 组合
class Duck {Flyable f = new FlyWithWings();void fly() {f.fly();}
}
2.2 在外部传参初始化:Aggregation 聚合
class Duck {Flyable f;void Duck(Flyable f) { this.f = f; }void setFlyBehavior(f) {this.f = f;}void fly() { f.fly();}
}
2.3 在rep中初始化,在构造其中传参可修改
class Duck {Flyable f = new CannotFly();void Duck(Flyable f) { this.f = f; }void Duck() {f = new FlyWithWings();}void fly() { f.fly(); }
}
3. CRP (Composite Reuse Principle)
Delegation 委托相关推荐
- iOS中常见的设计模式(MVC/单例/委托/观察者)
关于设计模式这个问题,在网上也找过一些资料,下面是我自己总结的,分享给大家 如果你刚接触设计模式,我们有好消息告诉你!首先,多亏了Cocoa的构建方式,你已经使用了许多的设计模式以及被鼓励的最佳实践. ...
- delegation java_SQL Server配置delegation实现double-hop
参考文献 前言 在上一篇博客SQL Kerberos的原理及实验中讲到了windows验证的两种模式分别是NTLM和Kerberos,那么他们有何区别,在功能上又有何不同. NTLM是一种比较简单的方 ...
- C++面向对象(四)Inheritance, Composition, Delegation
C++面向对象(四)Composition, Delegation, Inheritance 一.Composition(复合) - 关系表示为:has-a - 其构造和析构的关系 二.Delegat ...
- C++面向对象程序设计_Part2
目录 Composition(复合) 内存视角下的composition(复合) composition(复合)关系下的构造与析构 Delegation (委託) -- Composition by ...
- 如何设计复用性较好的类?
代码复用的几个级别: 源代码级别的复用 模块级别的复用(类/抽象类/接口) 库级别的复用(API) 系统级别的复用:框架 白盒复用:源代码可见.可扩展.可修改 黑盒复用:源代码不可见,只可调用API ...
- 通过例子学Solidity[注释翻译]
[官方译文(2)] 通过例子学Solidity[注释翻译] 前 继续翻译Solidity的官方文档, 以此也算是自己的学习[Solidity官方手册](https://solidity.readthe ...
- IOS设计模式之二(门面模式,装饰器模式)
本文原文请见:http://www.raywenderlich.com/46988/ios-design-patterns. 由 @krq_tiger(http://weibo.com/xmuzyq) ...
- IT英语2-编程词汇编程英语词汇
IT英语2-编程词汇编程英语词汇 A2A integration A2A整合 abstract 抽象的 abstract base class (ABC)抽象基类 abstract class ...
- 【转】软件开发常用术语
软件开发技术常用术语 A.I. 人工智能 A2A integration A2A整合 abstract 抽象的 abstract base class (ABC)抽象基类 abstract class ...
最新文章
- Linux 帧缓存 数据,linux--帧缓存技术
- 《CLR Via C# 第3版》笔记之(十) - 可选参数和可变数量参数
- 虚拟化对VMcpu分配的理解
- 接口转发和重定向区别(二)
- springMVC各种注解及解释和使用
- python设置格式模板
- 项目管理中风险评价的必要性
- ARM 指令集版本和ARM 版本z
- dell服务器硬盘锁_服务器十大排行
- 今天晴儿和老佛爷又一起上台了
- score函数 机器学习_scikit-learn中的cross_val_score函数scoring参数设置
- 如何避免 obj1 + obj2 = obj3 错误?
- java计算机毕业设计springboot+vue基本微信小程序的医疗耗材管理系统 uniapp
- 经纬度 android,android....中国各城市的经纬度,
- Egg.js -- 及案列介绍
- springboot获取properties文件的配置内容(转载)
- html微博登录代码,微博第三方登陆js实现
- Spring Cloud Gateway服务网关
- java espresso车架_Espresso UI自动化测试框架
- Ubuntu下Meshlab无法链接obj文件或者无法打开外挂硬盘的obj文件
热门文章
- 基于Qt的代码加速(含Opencv)
- C++ 概念笔记(一)-适用于考研复试
- Win10系统利用QEMU虚拟飞腾arm架构主机环境
- iPhone 12拍照取消自动曝光方法教程
- 魔与道java版本_魔与道_JAVA游戏免费版下载_7723手机游戏[www.7723.cn]
- Java从代理服务器中获取客户端真实IP的方法
- macbook m1 JDK环境与AndResGuard编译遇到的Gradle同步报错
- 一分钟生成1000份中国省会城市知识测试卷及答案
- 2.2kW直流无刷电机控制器含源码
- MFC 将CDC绘图保存为bmp图片