- 博客(15)
- 资源 (2)
- 收藏
- 关注
原创 命令模式(Command Pattern)
命令模式(Command pattern),将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。别名动作(Action),事务(Transcation)。使用性1)抽象出待执行的动作以参数化某对象。你可用过程语言中的回调(callback)函数表达这种参数化机制。所谓回调函数是指函数先在某处注册,而它将在稍后某个需要的
2015-11-30 23:26:38 241
原创 迭代器模式(Iterator Pattern)
迭代器模式(Iterator pattern),提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。别名游标(Cursor)。适用性迭代器模式可用来:1)访问一个聚合对象的内容而无需暴露它的内部表示。2)支持对聚合对象的多种遍历。3)为遍历不同的聚合结构提供一个统一的接口(即,支持多态迭代polymorphic iteration)。结构
2015-11-29 19:08:07 284
原创 备忘录模式(Memento Pattern)
备忘录模式(Memento Pattern):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。别名Token适用性在以下情况下使用备忘录模式:1)必须保存一个对象在某一个时刻的 (部分) 状态, 这样以后需要时它才能恢复到先前的状态。 2)如果一个用接口来让其它对象直接得到这些状态,将会暴露对象的实现细
2015-11-24 21:21:05 320
原创 MFC work
// SettingDlg.cpp : 实现文件//#include "stdafx.h"#include "TextHandle.h"#include "SettingDlg.h"#include "afxdialogex.h"// CSettingDlg 对话框IMPLEMENT_DYNAMIC(CSettingDlg, CDialogEx)CSettingDlg::
2015-11-22 00:29:39 424
原创 RichEdit
// TextHandleView.cpp : CTextHandleView 类的实现//#include "stdafx.h"// SHARED_HANDLERS 可以在实现预览、缩略图和搜索筛选器句柄的// ATL 项目中进行定义,并允许与该项目共享文档代码。#ifndef SHARED_HANDLERS#include "TextHandle.h"#endif
2015-11-20 00:09:06 425
原创 状态模式(State Pattern)
状态模式(State Pattern):允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。别名状态对象(Objects for States)实用性1)一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。2)一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。结构参与者Context——定义客户感兴趣
2015-11-19 00:13:10 312
原创 职责链模式(Chain of Responsibility Pattern)
职责链(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。结构对象图参与者Handler——定义一个处理请求的接口。——(可选) 实现后继链。ConcreteHandler——处理它所负责的请求。——
2015-11-18 22:32:23 243
原创 组合模式(Composite Pattern)
组合模式(Composite pattern):将对象组合成树形结构以表示“部分——整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。结构参与者Component——为组合中的对象声明接口。——在适当的情况下,实现所有类共有接口的缺省行为。——声明一个接口用于访问和管理Component的子组件。——(可选)在递归结构中定义一个接口,
2015-11-16 23:09:32 257
原创 外观模式(Facade pattern)
外观模式(Facade pattern):为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。动机将一个系统划分成为若干个子系统有利于降低系统的复杂性。一个常见的设计目标是使子系统间的通信和相互依赖关系达到最小。达到该目标的途径之一是就是引入一个外观(facade)对象,它为子系统中较一般的设施提供了一个单一而简单的界面。
2015-11-16 22:03:02 310
原创 C语言关键字
1.volatile关键字一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:1). 并行设备的硬件寄存器(如:状态寄存器)2). 一个中断服务子程序中会访问到的非自动变量(Non-
2015-11-15 22:33:59 318
原创 组合/聚合复用原则(CARP)
组合/聚合复用原则(CARP),尽量使用组合/聚合,不要使用类继承。组合(Composition,也作合成)和聚合(Aggregation)都是关联的特殊种类。聚合表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分;组合则是一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。看大雁与雁群、翅膀的关系组合/聚合复用原则
2015-11-15 22:20:04 763
原创 适配器模式(Adapter Pattern)
适配器模式(Adapter pattern):将一个类的接口转换成客户希望的另外的接口。 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。别名包装器Wrapper类适配器和对象适配器1、类适配器使用多重继承对一个接口与另一个接口进行匹配;2、对象匹配器依赖于对象组合。参与者Target——定义Client使用的与特定领域相关的接口
2015-11-15 20:56:58 402
原创 享元模式(Flyweight Pattern)
享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度的对象。flyweight是一个共享对象,它可以同时在多个场景(context)中使用,并且在每个场景中flyweight都可以作为一个独立的对象—这一点与非共享对象的实例没有区别。flyweight不能对它所运行的场景做出任何假设,这里的关键概念是内部状态和外部状态之间的区别。内部状态存储于flyweight中,
2015-11-08 18:10:09 1754
原创 常量与字段(contant and field)
A constant is a symbol that has a never-changing value.常量被视为类型定义的一部分(即常量被当作静态成员,而非实例成员)。定义常量导致元数据的创建。常量的值必须在编译时确定。在编译时,编译器将常量的值嵌入到IL代码中(即常量在编译时被替换,有点像C语言中的宏),因此不能获取常量,也不能将常量通过引用的方式进行传递。常量存在跨程序集版
2015-11-02 22:32:45 490
原创 virtual与abstract的区别
1、virtual函数声明时需要有实现,子类可以重写该函数,也可以不重写,直接从基类继承;2、abstract函数声明时没有实现,子类必须重写该函数。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace KeyWords{ class MyB
2015-11-01 22:50:04 297
Visual_Assist_X_10.6.1859
2016-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人