学习笔记——装饰器模式Decorator
2024-09-26 21:23:42
装饰器模式,最典型的例子。
工厂新开了流水线,生产了手机外壳,蓝天白云花色。刚准备出厂,客户说还要印奶牛在上面,WTF……
时间上来不及,成本也不允许销毁了重来,怎么办?弄来一机器A,专门在蓝天白云的外壳再印奶牛。
最后通过机器A的装饰,得到了有奶牛的外壳。
装饰器中调用传递进来的Component的方法,同时再附加上新的方法,在保证外部接口一致的情况下,达到增加新行为的目的。
简单代码,仅包含父类和装饰器:
class CComponent
{
public CComponent()
{ } public virtual void Operation()
{
Console.WriteLine("原始操作");
}
}
class CDecorator:CComponent
{
protected CComponent _com; public CDecorator(CComponent com)
{
this._com = com;
} public override void Operation()
{
_com.Operation();
SelfOperation();
} private void SelfOperation()
{
Console.WriteLine("新加操作");
}
}
最新文章
- spring里的controller之间的跳转
- SQL语句增加字段、修改字段、修改类型、修改默认值
- 【原创】Django-ORM基础
- get_magic_quotes_gpc()
- JS开发HTML5游戏《神奇的六边形》(四)
- hadoop 2.2.0的datanode中存储block的多个文件夹的负载均衡问题
- 【转】Maven实战(七)---传递依赖
- UVa 11054 Wine trading in Gergovia
- LeetCode里有特色的问题存档
- java.sql.SQLException: Lock wait timeout exceeded --转
- 6. Shell 流程控制
- python 附加作业01
- 堆排序应用之topK问题
- 去除bootstrap默认的input和选中时的样式
- struts2 的struts.xml配置文件
- [druid]大数据挑战——如何使用Druid实现数据聚合
- 【Excel】读取固定长文本
- leetcode11
- HDFS2.0架构以及HA详解
- PHP缓存库phpFastCache
热门文章
- 365DirMon(文件夹监视专家) v2.8绿色免费版
- 关于springboot启动时候报错:springboot Failed to parse configuration class [Application]
- sublime3安装
- js cookie 记住用户名密码
- 字符串匹配之boyer-Moore算法
- iOS下uiview和uiscrollview设置背景图片的源码
- OpenVPN客户端解析
- 手把手教你ranorex_android自动化测试第一个示例
- EDD-SPT综合规则
- OpenLDAP安装与配置