摘要:
一、简介1、当客户提交一个请求时,请求沿着链传递直到有一个管理者对象处理它。2、UML3、所属类别:行为型二、程序 1 // 职责链模式.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include 6 #include 7... 阅读全文
随笔档案-2015年01月
命令模式
2015-01-28 21:35 by itwolf, 202 阅读, 收藏, 编辑
摘要:
一、简介1、命令模式将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。2、命令模式中的几个角色客户(Client):创建了一个具体命令(ConcreteCommand)对象并确定其接收者。命令(Command):声明了一个给所有具体命... 阅读全文
桥接模式
2015-01-27 14:54 by itwolf, 359 阅读, 收藏, 编辑
摘要:
一、概述1、桥接模式将抽象部分与它的实现部分分离,使它们都可以独立的变化。2、在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,桥接模式把这种多维度分离出来,让他们独立变化,减少之间的耦合。感觉桥接模式的结构有点像抽象工厂模式,但桥接模式属于结构型模式,而抽象工厂模式属于创建型模式。... 阅读全文
转载:C++ vector 类学习笔记
2015-01-27 13:25 by itwolf, 276 阅读, 收藏, 编辑
摘要:
声明:本文转载自http://blog.csdn.net/whz_zb/article/details/6827999vector简介vector是STL中最常见的容器,它是一种顺序容器,支持随机访问。vector是一块连续分配的内存,从数据安排的角度来讲,和数组极其相似,不同的地方就是:数组是静态... 阅读全文
转载:C++ list 类学习笔记
2015-01-27 13:22 by itwolf, 322 阅读, 收藏, 编辑
摘要:
声明:本文转自http://blog.csdn.net/whz_zb/article/details/6831817双向循环链表list list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素。在STL中,list和vector一样,是两个常被使用的容器。和vector不一样的是,li... 阅读全文
C++静态成员变量和静态成员函数小结
2015-01-27 12:53 by itwolf, 253 阅读, 收藏, 编辑
摘要:
静态类成员包括静态数据成员和静态函数成员两部分。一 静态数据成员:类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点:1.静态数据成员的... 阅读全文
单例模式
2015-01-27 11:01 by itwolf, 225 阅读, 收藏, 编辑
摘要:
一、简介1、单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。2、C++设计一个单例模式的方法如下: (1)构造函数声明为私有; 这样就保证了不能随意构造一个对象。(2) 将拷贝构造函数与等号运算符声明为私有,并不提供他们的实现; 即禁止对象被拷贝。(3) 在类中声明一个静态的全局访问接... 阅读全文
迭代器模式
2015-01-27 09:34 by itwolf, 210 阅读, 收藏, 编辑
摘要:
一、简介1、迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。2、类成员(1)Iterator(迭代器)迭代器定义访问和遍历元素的接口(2)ConcreteIterator (具体迭代器)具体迭代器实现迭代器接口对该聚合遍历时跟踪当前位置(3)Aggregate (... 阅读全文
组合模式
2015-01-26 10:08 by itwolf, 245 阅读, 收藏, 编辑
摘要:
一、简介1、组合模式将对象组合成树形结构以表示‘部分和整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。2、模式中的几个重要的类Component:组合中的对象声明接口,在适当情况下,实现所有类共有接口的行为。Leaf:叶节点对象,叶节点没有子节点。由于叶节点不能增加分支和树叶... 阅读全文
备忘录模式
2015-01-21 14:54 by itwolf, 175 阅读, 收藏, 编辑
摘要:
一、简介1、备忘录 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。2、模式成员(1)Originator(发起人):负责创建一个Memento(备忘录),用以记录当前的状态,并且可以使用备忘录恢复自己的状态。(2)Mement... 阅读全文
适配器模式
2015-01-21 10:07 by itwolf, 174 阅读, 收藏, 编辑
摘要:
一、简介1、适配器模式将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。2、在软件设计的初期要尽量将接口统一,及早发现不统一的接口进行重构,在双方都不太容易修改的时候再使用适配器模式进行适配。3、UML4、所属类别:结构型二、C+... 阅读全文
观察者模式
2015-01-20 21:32 by itwolf, 353 阅读, 收藏, 编辑
摘要:
一、简介1、观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生变化的时候,会通知所有观察者对象,使它们能够动态的更新自己。如:图形界面的工具箱中,表格对象和柱状图对象使用不同的形式描述同一应用数据对象的信息。表格对象和柱状图对象相互并不知道对方的存在,... 阅读全文
状态模式
2015-01-20 10:38 by itwolf, 275 阅读, 收藏, 编辑
摘要:
一、简介1、状态模式中当一个对象的内部状态改变时允许改变其行为,这个对象看起来像是改变了其类。2、状态模式可以消化较大的分支,将每个分支放入一种状态中,减少了分支之间的耦合程度,又符合开闭原则。当一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为时,就可以考虑使用状态模式。3、U... 阅读全文
建造者模式
2015-01-19 14:42 by itwolf, 227 阅读, 收藏, 编辑
摘要:
一、简介:1、建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。2、建造者模式通常包括下面几个角色:(1)builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。(2)ConcreteBuilder:继承builder类,针对不同的商业逻辑,具体... 阅读全文
外观模式
2015-01-19 09:10 by itwolf, 183 阅读, 收藏, 编辑
摘要:
一、简介1、外观模式为子系统中的一组接口提供一个统一的高层接口,这一接口使得子系统更加容易使用。2、举例 :房间里有3盏灯,每一盏灯都有一个开关控制它的开和关两种状态,由于它们经常一起开关,所以就设置一个总的开关,一下子同时控制所有的灯。3、UML图4、所属类别:结构型二、C++程序 1 // 外观... 阅读全文
C++类的复制构造函数和赋值运算符
2015-01-18 21:09 by itwolf, 812 阅读, 收藏, 编辑
摘要:
前言:C++面向对象的编程过程中,凡是在类中运用到动态内存分配的时候总是会写一个显示的复制构造函数和赋值重载运算符,本文将结合C++ Primer Plus一书的内容分析下原因:一、在C++编程中如果没有编写下列成员函数,系统会自动的提供: (1)构造函数 (2)析构函数 (3)地址运算符 (4)赋... 阅读全文
模板方法模式
2015-01-18 10:54 by itwolf, 182 阅读, 收藏, 编辑
摘要:
一、简介1、模板方法模式定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。2、说白了模板方法模式就是将一些通用的步骤放在基类中,而将不同的环节放在子类中,以减少代码的重用。3、举例:考试中抄写题目并做答案,老师抄的题目对于每位... 阅读全文
原型模式
2015-01-17 11:45 by itwolf, 203 阅读, 收藏, 编辑
摘要:
一、简介1、原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。2、为什么会用到原型模式?(1)既然可以直接new,为什么会用到原型模式?这个可以从两个角度来说,第一,时间消耗角度:如果创建实例的构造函数非常的复杂,在执行这个构造函数时会消耗较长的时间,这时如果需要一个跟刚刚实... 阅读全文
抽象工厂模式
2015-01-16 11:13 by itwolf, 184 阅读, 收藏, 编辑
摘要:
一、相关介绍1、抽象工厂模式提供一个创建一系列相关或者相互依赖对象的接口,而无需指定它们具体的类。2、UML图3、所属类别:创建型二、C++程序 1 // 抽象工厂模式.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #includ... 阅读全文
工厂方法模式
2015-01-16 10:41 by itwolf, 218 阅读, 收藏, 编辑
摘要:
一、相关介绍1、工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。2、UML图3、所属类别:创建型二、C++代码// 工厂方法模式.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing na... 阅读全文
C++初始化列表
2015-01-16 10:19 by itwolf, 782 阅读, 收藏, 编辑
摘要:
一、什么是初始化列表与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段二、构造函数执行分为初始化和构造两个阶段,且初始化化阶段优先于计算阶段三、一个好的原则是,能使用初始化列表的时候尽量使用初始化列表因为初始化列表有时... 阅读全文
代理模式
2015-01-15 10:48 by itwolf, 184 阅读, 收藏, 编辑
摘要:
一、相关介绍1、代理模式为其他对象提供一种代理以控制对这个对象的访问2、UML图3、所属类别:结构型3、C++程序 1 // 代理模式.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include 6 using namespace st... 阅读全文
装饰模式
2015-01-15 09:18 by itwolf, 533 阅读, 收藏, 编辑
摘要:
一、相关介绍1、装饰模式是为已有功能动态地添加更多功能的一种方式。2、举例:QQ中的服装秀可以动态的搭配不同的服饰来进行修饰。3、UML图4、所属类别:结构型其实其实现就是在具体的装饰类构造过程的输入参数可以是people类,也可以是具体的装饰类,每次添加新装饰功能后,再调用输入参数类的功能。二、C... 阅读全文
策略模式
2015-01-13 13:17 by itwolf, 193 阅读, 收藏, 编辑
摘要:
一、策略模式的相关介绍1、定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。2、举例:商场中卖商品有原件、打折和满m元就减n元多种策略,可以将它们封装起来,然后通过策略类让这些方法可以被客户端选择。3、UML图:4、所属类... 阅读全文
简单工厂模式
2015-01-12 12:57 by itwolf, 228 阅读, 收藏, 编辑
摘要:
一、简单工厂模式的相关概念:1、定义:简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式。其核心思想就是有一个专门的工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。2、举例:如卖水果,每种水果有不一样的价钱,... 阅读全文
linux下进程相关操作
2015-01-05 22:19 by itwolf, 1263 阅读, 收藏, 编辑
摘要:
一、定义和理解狭义定义:进程是正在运行的程序的实例。广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域、数据区域和堆栈区域。文本区域存储处理器执行的代码;数据区域存储变量和进程... 阅读全文
散列表(哈希表)
2015-01-05 15:32 by itwolf, 334 阅读, 收藏, 编辑
摘要:
序言:如果将一系列的记录按照关键字的某种函数存储,那么在查找某个数据的时候就可以直接通过关键字计算出来了,而不在需要“比较”,这样会非常高效,这就是散列技术。所以散列技术就是: 存储位置=f(关键字) 不管是记录的存储还是查找,都用这种方法散列技术具有很高的效率,但是使用起来有一些限制。如1个关键字... 阅读全文