我总结的设计模式
来源:互联网 发布:反恐精英控制台优化 编辑:程序博客网 时间:2024/05/09 09:19
0、设计模式是代码框架,它的好坏影响了代码质量;
要不断思考、总结,形成一套完整、有效的设计模式库;
1、MVC
很有效,适用于大部分场景,尤其适用于客户端UI开发;
要以数据M为中心,显示V围绕数据走,控制器C负责协调;
M:数据管理器 + 数据类定义;
数据管理器:保存所有数据类对象;
C:单例,保存Model对象、View对象,提供对外接口;
一切的交互都通过ctrler完成:M-V间不直接访问,外界不能直接访问M、V;
2、总分树状法
有依赖、聚合、组合 三种形式,且依赖度越来越大;
依赖(know-a):类A访问类B的成员,或者类A在方法内创建并临时保存类B;
最好把类B对象以“函数参数”形式传进来,并且类A不保存它的引用;
例如玩家和主炮;
聚合(has-a):类A有成员变量->类B对象的引用,但不是A创建的、不是它独占的、时间周期不一样;
用于“从属关系“的类间,总类方便管理各个子类;
例如雁群和大雁;
组合(contain-a):类A有成员变量->类B对象的引用,是A创建的、是它独占的、时间周期一样;
用于表示“整体与部分”,例如鸟和翅膀、人和眼睛;
树状结构,总类通常为单例;
优点:总类可监管各子类;可随意增删组件、拓展性好;
3、分层包装法
上层:封装“访问下层 + 添加东西”,为更上层提供统一访问接口;
下层:抽象、单一责任原则、耦合性好、健壮性;
(单一责任原则例子:底1 - 加1,底2 - 加任意数,底3 - 加列表上所有数)
例如UI - 数据管理器 - 数据库;
例如A1 -> A2(A1+...) -> A3(A2+...) ->......;
4、相似类的继承抽象类法
基类封装了抽象函数和通用操作,若干子类覆盖基类抽象函数并处理自己的特殊行为;
用于相近类间,例如动物,猫、狗;
5、相似行为的继承接口法
接口定义了通用行为函数,所有继承它的类都要事先它们;
用于不相近但又有相似行为的类间,例如飞行,飞机、鸟、风筝;
6、触发器监听法
就是观察者模式,全局监听事件;
当事件发生时就执行相关操作(或者先缓存,某时间再统一处理);
情况一:被监听者主动事件广播 [用于被监方主动想让外界监听的情况,例如资源加载]
方式1: 被监听方创建委托成员变量(每个委托负责一个事件),允许外界自己添加删除;
方式2:被监听方创建一个“接口列表成员变量”,每个监听者都要继承该接口并成为列表的一员;
情况二:监听者主动监听 [用于监听方需要监听不同模块,主动创建监听的]
方式1:如果被监听方有委托成员变量,监听方在委托变量上加自己的函数就好(耦合性好);
方式2:监听方把自己的监听函数插进各个模块的代码中(灵活性好,但耦合性不好);
操作包括addTrigger(), updateTrigger(), deleteTrigger();
例如战斗引导,通过监听各实体行为以确定引导界面的显示;
- 我总结的设计模式
- 我学习设计模式的一个总结
- 设计模式---工厂模式,我的理解,总结
- 我理解的设计模式——总结
- 设计模式的总结
- 我欠设计模式一个总结
- 我理解的设计模式
- 我的大学--设计模式
- 我的JavaScript设计模式
- 我眼中的设计模式
- 我眼中的设计模式-适配器模式
- 我眼中的设计模式 ----策略模式
- 设计模式,我理解的代理模式
- 我理解的设计模式:工厂模式
- 我的Java设计模式-观察者模式
- 我的Java设计模式-原型模式
- 我的Java设计模式-策略模式
- 我的Java设计模式-代理模式
- Android Studio的常用快捷键
- 运用TensorFlow处理简单的NLP问题
- hdu 1430 魔板(康托展开+BFS+巧妙转换)
- 第二天(5道)
- 七牛云存储上传文件
- 我总结的设计模式
- Java之线程(接口)
- 运用TensorFlow处理简单的NLP问题
- 家具厂设计拆单+生产数控管理系统
- mailx发送邮件
- [LeetCode]--306. Additive Number
- java获取WEB-INF目录绝对路径
- Application生命周期
- 2016.8.4