- 博客(9)
- 资源 (19)
- 问答 (1)
- 收藏
- 关注
原创 设计模式五,Observer
观察者(Observer)模式用于解决一个相当常见的问题:当某些其他对象改变状态时,如果一组对象需要进行相应的更新,那么应该如何处理呢?假定有一些数据(即文档)和两个视图,一个图形视图和一个文本视图,在更改“文档”数据时,必须通知这些视图更新它们自身,这就是观察者模式所要完成的任务。 以下代码完成Observer模式,采用内部内的方式,不过虽然实现了此模式,但内部类的代码不断重复,不是好的方法。 找到更适合的方法再考虑进行更新。 #ifndef OBSERVER_H #d
2011-01-18 23:16:00 530
原创 puremvc
最近在看puremvc。 一、认识PureMVC 1.1什么是MVC MVC是Model-View-Controller的缩写,Model指数据模型,View指用户界面,Cotroller指控制器。使用MVC的目的是将M和V分离,从而使同一个程序可以有不同的表现形式。例如,一批统计数据你可以分别用柱状图,条形图或饼图来表示(这种数据对应多个表现形式,又叫做数据的多态呈现)。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。MVC是一个设计模式,它强制性的使应用程序的数据,表现和业务逻辑分开
2011-01-13 22:27:00 1534
原创 设计模式(四)factory,Polymorphic factories,Abstract factories
强制一个通用的工厂来创建对象,而不允许将创建对象的代码散布于整个系统。如果程序中所有需要创建对象的代码都转到这个工厂执行,那么在增加新对象时所要做的全部工作就是只需修改工厂。 //: C10:ShapeFactory1.cpp#include #include #include #include #include #include "../purge.h"using namespace std; class Shape {public: virtual void draw() = 0; vir
2011-01-09 15:40:00 553
原创 设计模式(三)Strategy,Chain of Responsibility
Strategy:运行时选择算法。 注意,模板方法模式是“坚持相同的代码”,而被覆盖的函数是“变化的代码”。然而,这种变化在编译时通过继承被固定下来。按照“组合优于继承”的格方,可以利用组合来解决将变化的代码从“坚持相同的代码”中分开的问题,从而产生策略(Strategy)模式。这种方法有一个明显的好处:在程序运行时,可以插入变化的代码。策略模式也加入了“语境”,它可以是一个代理类,这个类控制着对特定策略对象的选择和使用--就像状态模式一样。 “策略”的意思就是:可以使用多种方法来解决某个问题--即“条
2011-01-08 13:40:00 479
原创 设计模式二,Proxy,State,Adapter,Template Method
Proxy,可以理解为本身不提供实现方式,通过接口调用具体的实现。 //: C10:ProxyDemo.cpp// Simple demonstration of the Proxy pattern.#include using namespace std; class ProxyBase {public: virtual void f() = 0; virtual void g() = 0; virtual void h() = 0; virtual ~ProxyBase() {}}; class
2011-01-08 12:35:00 485
原创 设计模式(一)Singleton,Command
//: C10:SingletonPattern.cpp #include using namespace std; class Singleton { static Singleton s; int i; Singleton(int x) : i(x) { } Singleton& operator=(Singleton&); // Disallowed Singleton(cons
2011-01-07 22:22:00 459
原创 第六章 通用算法
函数对象 函数对象是重载了operator()的类的一个实例,operator()是函数调用运算符。这个运算符允许用函数调用语法并使用对象。如同其他对象一样,可以通过该对象的构造函数来初始化它。 //: C06:GreaterThanN.cpp #include using namespace std; class gt_n { int value; public: gt_n(int val) : value(va
2011-01-04 22:38:00 661
原创 深入理解模板
模板有两类:函数模板和类模板。 无类型模板参数 默认模板参数 模板类型的模板参数 函数模板重载 编译时断言 //: C05:StaticAssert1.cpp {-xo}// A simple, compile-time assertion facility #define STATIC_ASSERT(x) / do { typedef int a[(x) ? 1 : -1]; } while(0) int main() { STATIC_ASSERT(sizeof(int) using namespa
2011-01-02 15:42:00 526
原创 C++模板元编程——Traits
[转]C++模板元编程——Traits 通过一个计算序列元素的累加和的小函数来说明traits的使用。 计算一个序列的累加和: template T accum(const T* beg, const T* end) { T total = T(); while(beg != end) { total += *beg; ++beg; } return total; } 使用accum
2011-01-01 14:57:00 656
C++11标准实现的线程池以及在此基础上实现的仿cron功能的定时器
2024-04-05
kline-chart,python3.12下运行,主要使用pyside6开发,下载下来后将所缺库安装即可直接运行
2024-03-24
boost_1_66_0_windows.rar
2024-03-16
webpy框架写的blog
2017-05-11
web-server
2017-05-10
gtest使用范例-使用cmake编译
2017-02-08
一个简单的calendar源代码
2016-06-19
Spring 3.x 企业应用开发实战-源代码(myeclipse测试通过)
2015-12-25
maven3 安装包
2015-12-06
wing ide 5.0.6 最新注册机
2014-06-02
正则表达式解析器源码(C#完成)
2014-04-20
log4cplus-1.1.2vs2008编译通过
2013-12-08
nginx源码vs2008版
2012-08-25
log4cxx测试工程
2012-03-03
设计模式之详解(c++实现版)
2009-07-08
多叉树构造器
2008-04-13
在android系统中如何监控可写入的控件获得焦点这样的事件
2014-03-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人