摘要: 1 意图:将对象组成树形结构,以表示“部分——整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 2 动机:同意处理图元对象和包含图元的容器对象。Composite通过递归的方式实现统一处理。 关键是一个抽象类,既能代表图元又能代表容器。 3 适用性: . 表示"部分 阅读全文
posted @ 2016-07-28 18:56 罗纳尔东 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 1 意图:将抽象部分与实现部分分离,使得它们都可以独立地变化 2 别名:Handle/Body 3 动机:客户在创建窗口时应该不涉及到具体实现部分。仅仅是窗口的实现部分依赖于应用运行的平台。 客户代码在创建窗口时,就不应涉及到特定平台。 接口 实现(Imp) 4 适用性: . 不希望在抽象和实现部分 阅读全文
posted @ 2016-07-28 16:45 罗纳尔东 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 1 意图:将一个类的接口转换成客户期望的另外一个接口。 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 2 别名:Wrapper 3 TextShape类来适配TextView的接口和Shape的接口 1)继承Shape的接口和TextView的实现 2)将一个Text 阅读全文
posted @ 2016-07-28 14:48 罗纳尔东 阅读(392) 评论(0) 推荐(1) 编辑
摘要: 简介: 1 Template Method是一个算法的抽象定义,逐步定义该算法。,每步调用一个抽象操作或一个原语操作。子类实现算法 2 Interpreter:将一个文法作为一个类层次,实现一个解释器作为这些类的实力上的一个操作 3 Mediator 将对象间的交互,由多对多变为一对多,同时对象间松 阅读全文
posted @ 2016-07-22 11:37 罗纳尔东 阅读(541) 评论(0) 推荐(0) 编辑
摘要: 1 意图:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 2 动机:如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。 构建一个解释器,解释这些句子来解决问题。 3 适用性: 当一个语言需要解释执行, 阅读全文
posted @ 2016-07-21 19:38 罗纳尔东 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 1 意图:将一个请求封装为一个对象,可以用不同的请求对客户进行参数化; 对请求排队或记录请求日志,以及支持可撤销的操作。 2 别名:Action、Transaction 3 动机:把请求变成一个对象。关键是定义一个抽象的Command类,定义一个执行操作的接口。最简单有一个抽象的Execute操作。 阅读全文
posted @ 2016-07-21 11:26 罗纳尔东 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 1 意图:多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。 将这些对象连成一条链,沿着这条链传递该请求,知道有一个对象处理它为止。 2 动机:要沿链请求,并保证接收者是隐式的,每个链上的对象都有一只的处理请求和访问链上后继者的接口。 3 适用性: .有多个对象可以处理一个请求, 阅读全文
posted @ 2016-07-20 19:16 罗纳尔东 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 1 意图:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 2 别名(Cursor) 3 动机:队列表的访问和遍历从列表对象中分离出来放入一个迭代器对象中。 多态迭代 抽象的列表类,提供列表的公共接口。类似的也需要一个抽象的Iterator,公共的迭代接口。 列表对象提供Cr 阅读全文
posted @ 2016-07-20 15:37 罗纳尔东 阅读(846) 评论(0) 推荐(0) 编辑
摘要: 如果使用MFC socket类CSoket通讯,必须使用stream socket,不能够使用SOCK_DGRAM 类型socket。原因如下:1 stream socket和数据报socket的区别就是, 前者是可靠传输,数据会被拆成多个数据包发送:(1) 收发两端的发送的数据包顺序要一样。 (2... 阅读全文
posted @ 2015-02-06 10:52 罗纳尔东 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 之前看侯捷翻译的《win32多线程程序设计》中关于线程同步中的临界区问题,其中举得例子是对链表的操作。死锁的问题是对一个Swaplist函数的问题,现列举代码如下:void SwapLists(List *list, List *list2){ List *tmp_list; EnterCrit... 阅读全文
posted @ 2014-11-13 22:44 罗纳尔东 阅读(295) 评论(0) 推荐(0) 编辑