设计模式学习笔记(二)

Factory Method工厂方法

(抽象基类是不能被创建(new)的)


1.在运行时再决定创建类型,方法是传入要被创建的类型的工厂(用工厂基类装载),再调用传入的工厂的创建功能。

具体工厂overwrite工厂基类的纯虚函数。


抽象工厂

将同一系列的创建对象的工厂,抽出来放在到抽象工厂里面。

Prototype原型模式

它解决是问题跟工厂模式相似,但是方法有不同,相对是工厂模式来说比较少使用。原型模式是将工厂方法的“具体工厂”创建(new)具体对象的功能组合到“具体类”里面,在“具体类”里面创建自己应该叫克隆(clone)。它适用于创建“结构复杂的对象”,复杂的界:当用“工厂方法”创建时感到繁杂,这时候就可以尝试用原型模式。

构建器

(为什么c++父类的构造函数不能调用子类overwrite的虚函数?因为子类创建的时候,先是调用父类的构造函数,那么子类还没用创建完成时,父类又要调用子类的函数,这明显不可以的。也可以说在c++中,父类构造函数调用将要被子类overwrite的纯虚函数,这时是静态绑定。而在其它语言在这种情况则是动态绑定。)

它和模板方法会有相识点,使用频率较少。

Façade门面模式

灰色框内就高内聚的一个子系统,外面则是用户。用户与系统之间有过多的耦合。为了解决耦合过多问题,我们应该为系统设计一个对外的接口。这种设计方法叫做Façade。

Proxy代理模式

通过实例方法访问,这是比较简单的。在实际开发情况中是会很复杂过程,一般会用专门的工具生成代码。

适配器模式

OladCass是抽象IAdaptee类的具体类。

STL里面的stack和queue都是更改了deqeue的接口的。也属于适配器模式,只不过是抽象接口和具体接口都同是一个类而已。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,766评论 18 399
  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 3,978评论 1 15
  • 一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者...
    RamboLI阅读 772评论 0 1
  • 在学习《锋利的jQuery》第六章,jquery与Ajax中 $.get()方法获取XML文档信息时遇到这样一个问...
    厨房有只偷吃的猫阅读 561评论 0 2
  • 目前是大多数打算换工作的最佳时期,像boss直聘,拉勾网,智联每天都有大量的招聘信息,这里我选取了最新拉勾网上的某...
    茴香豆的第五种写法阅读 338评论 2 0