现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2012-07-18 06:13 工业·编程 ⁄ 共 635字 暂无评论
创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。创建类模式有5种,分别是: 单例模式:用于得到内存中的唯一对象。 工厂方法模式:用于创建复杂对象。 抽象工厂模式:用于创建一组相关或相互依赖的复杂对象。 建造者模式:用于创建模块化的更加复杂的对象。 原型模式:用于得到一个对象的拷贝。 为什么需要创建性模式 首先,在编程中,对象的创建通...
阅读全文
    Singleton模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。比如读取并保存配置文件的类就只应该有一个实例。Singleton模式比较简单,也很容易理解。所以不做太多解释,上源码,两种方式的实现代码: //Singleton.h #ifndef _SINGLETON_H_ #define _SINGLETON_H_ // 单例模式实现方法1 class Singleton { public: static Singleton* GetInstance(); protected: private: Sing...
阅读全文
2012-07-17 21:24 工业·编程 ⁄ 共 3781字 暂无评论
    借用《设计模式精解-GoF 23种设计模式解析》的原文来表述一下:面向对象系统的分析和设计实际上追求的就是两点,一是高内聚(Cohesion),而是低耦合(Coupling)。这也是我们软件设计所准求的,因此无论是OO中的封装、继承、多态,还是我们的设计模式的原则和实例都是在为了这两个目标努力着、贡献着。设计模式体现的是一种思想,而思想则是指导行为的一切,理解和掌握了设计模式,并不是说记住了23种(或...
阅读全文
2012-07-17 06:59 工业·编程 ⁄ 共 2693字 暂无评论
今天在看一个代码里头写了GetWindowLong (hwnd, 0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第2个参数为0是指什么,MD,很恼火,最近终于在一个 国外网站找到,我在这篇文章贴了,网站是http://www.codeguru.com/forum/archive/index.php/t-243778.html 先收集所有关于此函数的使用方法以及程序代码希望后来的人看到我的这篇文章能感动哈: 函数功能描述:用这个函数能够获得指定窗口的信息 函数原型: LONG ...
阅读全文
2012-07-17 06:58 工业·编程 ⁄ 共 510字 暂无评论
afx_msg void OnOutPutStatusButtonUp (WPARAM wParam, LPARAM lParam); BEGIN_MESSAGE_MAP(CIOStatue, CDialog) //{{AFX_MSG_MAP(CIOStatue) //}}AFX_MSG_MAP ON_COMMAND_RANGE(IDC_STATIC_OUT1,IDC_STATIC_OUT16,OnOutPutStatusButtonUp) END_MESSAGE_MAP() //注意IDC_STATIC_OUT1,IDC_STATIC_OUT16之间是连续的 void CIOStatue::OnOutPutStatusButtonUp(WPARAM wParam, LPARAM lParam) ...
阅读全文
2012-07-17 06:57 工业·编程 ⁄ 共 10257字 暂无评论
线程同步是多线程程序设计的核心内容,它的目的是正确处理多线程并发时的各种问题,例如线程的等待、多个线程访问同一数据时的互斥,防死锁等。Win32提供多种内核对象和手段用于线程同步,如互斥量、信号量、事件、临界区等。所不同的是,互斥量、信号量、事件都是Windows的内核对象,当程序对这些对象进行控制时会自动转换到核心态,而临界区本身不是内核对象,它是工作在用户态的。我们知道从用户态转换到核心态是需要以时间...
阅读全文
    很多人使用线程的时候,都喜欢在线程内画图。如果在线程内画图,程序就很容易出错,而且还是那种没有任何响应和提示的错误问题.例如,一个复制文件的程序,这个程序由两个线程组成,一个是复制文件的线程,一个是显示文件复制进度的线程。理论上这个程序没有什么问题。但是,这个程序有一个很大的隐患,就是主程序也可能某一时刻要更新这个进度条,例如,进度窗口被其他窗口挡住后或窗体,这个窗体就要刷新...
阅读全文
2012-07-17 06:55 工业·编程 ⁄ 共 11525字 评论 1 条
由于CListCtrl良好的数据展示形式和便捷的操作,所以我们在编程工作中会经常用到,网上找到一片不错的总结,估计对于一般的使用场景够用的。还有其他需求,我们可以再探索讨论。 以下未经说明,listctrl默认view 风格为report 1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows资...
阅读全文
    虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次: class A { public: virtual void foo() { cout << "A::foo() is called" << endl;} }; class B: public A { public: virtual void foo() { cout << "B::foo() is called" << endl;} }; ...
阅读全文
2012-07-17 06:07 工业·编程 ⁄ 共 2184字 暂无评论
定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 类型:创建类模式 类图: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件: 实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在java虚拟机中,只有实现了这个接口的类才可以被拷贝,否则在运行时会...
阅读全文