摘要:为其他对象提供一种代理以控制对这个对象的访问 1 #include <iostream> 2 #include <string> 3 #include <list> 4 5 using namespace std; 6 class Subject 7 { 8 public: 9 virtual vo
阅读全文
摘要:单个对象和组合对象的使用具有一致性。将对象组合成树形结构以表示"部分--整体" 例如:文件和目录的显示,单个对象是文件,组合对象是目录,一致性是显示。 1 #include <iostream> 2 #include <string> 3 #include <list> 4 5 using name
阅读全文
摘要:观察者模式 定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 大体实现:基类中维护观察者列表,声明接口及公共方法,观察者调用update刷新自己的状态。 1 #include <iostream> 2 #include <string>
阅读全文
摘要:适配器模式 定义:适配器模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器类中聚合自定义类的对象。 1 #include <iostream> 2 #include <string> 3 #include <list> 4 5 usin
阅读全文
摘要:策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。接口和实现进行了隔离。 大体实现:基类定义接口子类实现算法,运用多态,运行时调用不同的算法。 1 #include <iostream> 2 #include <string> 3 4 using namespace std;
阅读全文
摘要:1 #include <iostream> 2 #include <string> 3 4 using namespace std; 5 6 //懒汉式 7 class Singelton 8 { 9 public: 10 static Singelton* getInstance(); 11 ~S
阅读全文
摘要:简单工厂模式适用场景: 工厂类负责创建的对象比较少:由于创建的对象较少,不会造成工厂方法中的业务逻辑太过复杂。 客户端只知道传入工厂类的参数,对于如何创建对象不关心:客户端既不需要关心创建细节,甚至连类名都不需要记住,只需要知道类型所对应的参数 工厂方法:工厂作为基类,具体的类集成工厂实现自己的创造
阅读全文
摘要:时序图 用于描述对象之间的传递消息的时间顺序。 对象 时序图中对象使用矩形表示,并且对象名称下有下划线。 生命线 生命线是一条垂直的虚线.表示时序图中的对象在一段生命周期内的存在。 消息 两个对象之间的单路通讯。从发送方指向接收方,在时序图中很少使用返回消息。
阅读全文
摘要:类:类名,属性,方法 使用 矩形 表示。 共有类型 + 表示,私有类型 - 表示,保护类型用 # 表示 类之间的关系 接口 包含方法,但是不包含属性,在UML中使用一个带有名称的圆圈表示。 泛化 接口与接口之间的继承关系, 用一条实线空心箭头由子类指向父类。 依赖 一个类是类外一个类的函数参数或者函
阅读全文
摘要:用例图 用例图:也称为用户模型图,是从软件需求分析到最终实现的第一步,它是从客户的角度来描述系统功能; 包含3个基本组件:参与者,用例,关系 关系: 泛化关系:表示同一业务目的的不同技术实现(各个子用例),在UML中,用例泛化用一个三角箭头从子用例指向父用例。 包含关系:一个用例可以包含其他用例具有
阅读全文
摘要:1 #include <iostream> 2 using namespace std; 3 typedef struct list 4 { 5 int data; 6 struct list* next; 7 list():data(0),next(NULL){} 8 }List; 9 10 //
阅读全文
摘要:1.多线程和多进程程序的区别? 进程优点:编程、调试简单,可靠性较高。 进程缺点:创建、销毁、切换速度慢,内存、资源占用大。 线程优点:创建、销毁、切换速度快,内存、资源占用小。 线程缺点:编程、调试复杂,可靠性较差。 对比维度 多进程 多线程 总结 数据共享、同步 数据共享复杂,需要用IPC;数据
阅读全文