设计模式
陌上花开-buaa
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
创建型模式:单件模式
单件模式是为了保证类只有一个实体,并为它提供一个全局唯一的访问点。class singleton{public: ~singleton(){} static singleton* getInstance() { if(_instance == NULL) { _instance = new si原创 2015-09-13 22:59:41 · 379 阅读 · 0 评论 -
创建型模式:工厂模式(简单工厂模式,抽象工厂模式,工厂模式)
简单工厂模式 工厂模式中最简单的一种,用比较简单的方式隐藏创建对象的细节。客户端唯一需要知道的是具体子类的类型,工厂类就会返回需要的产品类,但客户端看到的只是产品的抽象对象,无需关心到底是返回了哪个子类。基本是达到了依赖倒转原则的要求。优点1.隐藏了对象创建的细节,将产品的实例化推迟到子类。2.客户端只需要知道用哪个工厂,提供的类型也可以用比较便于识别原创 2015-09-13 10:43:43 · 404 阅读 · 0 评论 -
结构性模式:装饰模式
意图:动态地给一个对象添加一些额外的职责。抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。具体构件(Concrete Component)角色:定义一个将要接收附加责任的类。装饰(Decorator)角色:持有一个构件(Component)对象的实例,并定义一个与抽象构件接口一致的接口。具体装饰(Concrete Decorator)原创 2015-09-20 11:26:49 · 441 阅读 · 0 评论 -
结构性模式:外观模式
意图:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。根据迪米特法则:如果两个类不必直接通信,这两个类就不应该直接相互作用,如果其中一个类需要调用另一个类的方法,可以通过第三者转发。适用性:(1)当需要为一个复杂子系统提供一个简单接口。(2)客户程序与抽象类的实现部分之间存在很大的依赖性,引入外观模式将子系统与客户程序原创 2015-09-21 18:07:50 · 520 阅读 · 0 评论 -
结构型模式:代理模式
意图:为其他对象提供一种代理以控制对这个对象的访问。适用性:在需要用比较通用和复杂的对象指针代替简单的指针的时候,使用代理模式,下面是几种常见情况(1)远程代理(Remote Proxy):为一个对象在不同的地址空间提供局部代表。(2)虚代理(Virtual Proxy):根据需要创建开销很大的对象。(3)保护代理(Protection Proxy):控制对原始对象的访问,原创 2015-09-22 11:26:50 · 486 阅读 · 0 评论 -
结构型模式:适配器模式
意图:将一个类的接口转换成客户希望的另一种接口,从而使原本接口不兼容而无法在一起工作的那些类能够在一起工作。适配器模式分为:类适配器模式和对象适配器模式。类适配器模式客户端需要实现SpecificRequest()操作,但是需要Request()方法,为了使客户能够使用Adaptee类,提供一个中间环节(Adapter类),Adapter类继承自Adaptee,Adapter类原创 2015-09-17 23:41:27 · 392 阅读 · 0 评论 -
行为模式:观察者模式
意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。适用性:(1)一个对象改变时需要同时改变其它对象,但不知道具体有多少对象有待改变。(2)一个对象时必须通知其它对象,又不能假定其它对象是谁,也就是说这些对象是松耦合的。(3)对一个对象有多个方面,封装在独立的对象中,并且相互之间有依赖。缺点1.如果一个被观原创 2015-09-19 11:19:27 · 480 阅读 · 0 评论
分享