自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 C++设计模式(4):模板方法模式

一、背景二、模板方法模式定义定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式是一种基于继承的代码复用技术,它是一种类行为型模式。模板方法模式是用来创建一个算法模板,什么是模板?其实就是一个方法。更加具体的来说就是这个方法将算法定义成一组固定顺序的步骤(方法),其中任何一种步骤都可以是抽象的,由子类...

2019-10-30 17:31:00 302

原创 C++设计模式(3):迭代器模式

一、背景有多种方法可以将对象堆起来成为一个集合,我们可以将它们放进数组、堆栈或者散列表中,每种方式都有各自的使用时机。但是当客户需要遍历访问这些对象的时候,最好不要让客户知道数据集合的内部实现。那么如何能让客户遍历你的对象而无又无法窥视的存储对象的方式,最常用的方式就是将对这些集合遍历的方式封装起来,不管什么形式的集合,都采用一种迭代访问的方式:迭代器模式。二、迭代器模式迭代器模式提供一种...

2019-10-25 10:32:09 302

原创 C++设计模式(2):状态模式(代码)

class GumballMachine;/* 抽象接口,在此接口内,糖果机的每个动作都有一个对应的方法 */class State{public: virtual void insertQuarter() = 0; /* 投入25分钱 */ virtual void ejectQuarter() = 0; /* 退回25分钱 */ virtual void turnCrank() ...

2019-10-19 12:00:02 216

原创 C++设计模式(2):状态模式

一、状态和有状态的对象一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的对象;这样的对象状态是从事先定义好的一系列值中取出来的,当一个这样的对象与外部事件产生互动,其内部状态就会改变,从而使得系统的行为与随之发生变化。二、状态模式状态模式:又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模式;允许一个对...

2019-10-19 11:53:52 323

原创 C++设计模式(1):代理模式

一、模式定义代理模式使用代理对象完成用户请求,屏蔽用户对真实对象的访问。通过代理对象访问目标对象,这样做的好处就是可以在目标对象实现的基础上,扩展目标对象的功能。代理模式分为静态代理和动态代理。二、模式作用控制和管理对目标对象的访问三、模式的角色和UML图抽象角色:声明真实对象和代理对象的共同接口代理角色:1.代理对象角色内部含有对真实对象的引用,从而可以操作真实对象2.代理对象提...

2019-10-16 13:50:58 348

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除