设计模式 之代理(Proxy)模式
2024-09-25 11:17:03
为什么这里要定义代理呢?所谓代理代理,当然就是你不想做的事。找别人去做,这就是代理。所以,当你写代码的时候。你想保持类的简单性、重用性。你就能够把事件尽量都交给其他类去做。自己仅仅管做好自己的事。也就是SRP,单一职责原则。
假设一个类关注的点过多,做的事情太多。这些事情无论是你直接做的,还是调用别的对象去完毕的。
这都不行,自己做这些事,那就会使类的功能复杂化,维护不方便。而过多地调用其他对象来完毕一些事情,表面上看起来好像不错,实际上是过度耦合了。我们编写类的原则应该是追求高内聚,低耦合的。可能你会说,用代理不也是交给别人做吗?没错。问的好。可是,代理是接口,我们是针对接口编程,所以它的重用性会很好。
因此,下次当你想写可扩展和可重用的代码的时候,最好还是先想想代理这个东西吧。
Cocos2d-x /ui 控件的管理所谓就是代理模式。
在widget类里面有这两个函数 :
/**设置布局參数*/
void setLayoutParameter(LayoutParameter* parameter);
/**得到布局參数*/
LayoutParameter* getLayoutParameter(LayoutParameterType type);
本来 布局參数能够作为widget的一个属性。成员 。
可是这样处理起来 这个widget就会添加负担。功能复杂 不利于维护。如今剥离出来。利用代理模式。如今參数布局LayoutParameter单独封装处理
重用性也非常高。
最新文章
- vi命令模式下快速注释代码的方法
- sp_help 快速查看表结构、视图信息
- csharp:百度翻译
- [转]linux的du和df命令
- npm常用命令总结
- firefox 自写扩展改版,总结
- ADS-B 雷达 显示终端5.8
- UVa 757 - Gone Fishing
- Musical Theme poj1743(后缀数组)
- textarea高度自适应,随着内容增加高度增加
- Linux最佳的云存储服务分析
- Java的递归、IO流
- 「造个轮子」——cicada 源码分析
- pycharm设置自动换行的方法
- 基于Thinkphp5.0 小程序登录插件应用
- 记无法用被动方式登录远程linux主机的原因
- iOS 实时音频采集与播放Audio Unit使用
- 20144306《网络对抗》Web基础
- (连通图 模板题 无向图求桥)Critical Links -- UVA -- 796
- Spring统一异常处理
热门文章
- Mapping (RESOURCE) not found :和BeanFactory not initialized or already closed - call 'refresh' before access记录
- java使用数据库连接池
- 抓取oracle数据库耗费资源的sql语句
- mysql时间的处理
- 如何用纯 CSS 创作一个冒着热气的咖啡杯
- Python机器学习及实践+从零开始通往Kaggle竞赛之路
- 剑指Offer(书):数组中重复的数字
- jquery validate基本
- python常用函数 A
- 火狐插件youdao word capturer无法删除。