设计模式
来源:互联网 发布:mac ps合并图层快捷键 编辑:程序博客网 时间:2024/05/27 10:43
基本原则:
多用组合,少用继承;
针对接口编程,不针对实现编程;
为交互对象之间的松耦合而努力;
对扩展开放,对修改关闭;
依赖抽象,不依赖具体类;
方法调用不可以使用返回的对象;
一个类应该只有一个引起变化的原因;
1、创建型模式:
工厂模式;由子类决定实例化哪个具体类
抽象工厂模式;
builder(生成器)模式; 构建与表示分离了,构造过程封装在builder类了。
单体模式;ACE_Singleton
2、结构型模式:
适配器模式;将一个接口转成另一个接口。
template <class MALLOC>
class ACE_Allocator_Adapter : public ACE_Allocator
具体使用方法: typedef ACE_Allocator_Adapter<ACE_Malloc <ACE_MMAP_MEMORY_POOL, ACE_SYNCH_MUTEX>> PERSISTENT_ALLOCATOR;
将ACE_Malloc类转换为ACE_Allocator。
ACE_Lock --- 抽象类型
ACE_Lock_Adapter -- 使用适配器模式。采用模板实现。
template <class ACE_LOCKING_MECHANISM> --- 具体类型
class ACE_Lock_Adapter : public ACE_Lock
对象适配器,采用组合方式
类适配器,采用继承方式
修饰者模式;不改变接口,但加入责任。
采用递归方式
外观模式;让接口简单。可以让客户从组建的子系统中解耦。如ACE_SOCK_CONNECTOR等
组合模式;
观察者模式:
桥接模式:桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。桥梁模式中的所谓脱耦,就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以相对独立地变化。这就是桥梁模式的用意。用例:ACE_ACTOR
3、行为模式:
策略模式;封装可以互换的行为,然后使用委托来决定采用哪一个行为:继承自ACE_Alloctor的三种Alloctor:如ACE_Static_Allocator等
观察者模式;
模板模式:子类决定如何实现算法中的某些步骤。
迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。(外部迭代器,内部迭代器)
状态模式:运行一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。
代理模式:分布计算方式RMI和Corba等都是Proxy模式的应用
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式~~~~~~~~~~
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 汉字字符集
- IIS ERROR about SP:The process can't access the file because it is being used by another process
- k-means的简化版本
- [NSFileManager defaultManager] 与 [[NSFileManager alloc] init] 返回的实例区别
- how to know the package name of android apk?
- 设计模式
- 快客原创 火车头数据采集视频教程——第1讲 ecshop zencart shopex lightinthebox 网店数据批量采集教程
- java程序性能优化
- XML的学习运用
- 解决“java.lang.NoSuchMethodError: org.hamcrest.core.AllOf.allOf…”问题(使用JUnit和Hamcrest)
- MongoDB整合Spring 详细讲解(含代码)
- linux strace命令详解 进程跟踪
- scp ssh Connection refused
- imagemagick montage function