博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年1月12日

摘要: 目前lua发布的最新版本是2011年12月12日发布的lua-5.2.0.tar.gz,而tolua++发布的最新版本为tolua++-1.0.93.tar.bz2,该版本暂时不支持lua5.2(其实简单修改下代码也可以支持的),所以我们以上一版本的lua-5.1.4.tar.gz为例,讲解tolua++的安装方式。安装环境为RHEL5.5。一、下载相关软件包lua包:http://www.lua.org/ftp/lua-5.1.4.tar.gztolua++包:http://www.codenix.com/~tolua/tolua++-1.0.93.tar.bz2scons包:http:// 阅读全文

posted @ 2012-01-12 15:42 开源云 阅读(9827) 评论(3) 推荐(1) 编辑

2012年1月9日

摘要: 定义:命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象,命令模式也支持可撤销的操作。命令模式可将“动作的请求者”从“动作的执行者”对象中解耦。场景:我们要设计一个遥控器,可以通过按动上边的控制按钮控制卧室和厨房的灯,还能控制卧室中的音响的开关。遥控器及时我们的“动作的请求者”,而灯和音响就是我们的“动作的执行者”。当我们按动遥控器上的某个开关后,遥控器就可以把相关的指令发送到我们的指定的家电上。这之中遥控器和家电之间是解耦的,我们完全可以通过设置,添加、修改或删除其它的家电控制功能,而不需要修改遥控器的代码。类图:c++代码如下:#include <iost 阅读全文

posted @ 2012-01-09 15:33 开源云 阅读(1522) 评论(0) 推荐(0) 编辑

2011年12月29日

摘要: 定义:单件模式确保一个类只有一个实例,并提供一个全局访问点实现一:#include <iostream>using namespace std;class CSingleton{public: static CSingleton* getInstance(); static void cleanInstance(); int getValue(); void setValue(int iValue);private: int m_iValue; static CSingleton* m_pSingleton; CSingleton(); ~CSi... 阅读全文

posted @ 2011-12-29 22:55 开源云 阅读(4097) 评论(0) 推荐(0) 编辑

2011年12月22日

摘要: 定义:抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。场景:我们的披萨商店正在加速的扩建,已经接了好多城市的加盟邀请。可是各地口味不同,如果每个地市都定义不同的披萨类型,那么后期的维护将是十分头痛的,根据分析,我们披萨的种类是固定的,变动的其实就是披萨中添加的原料类型和原料的分量,因为不同的地方所生产的原料也是不同的。所以根据总部意见,打算在各地建立一个原料工厂,制作的披萨还是那些披萨,只是各地通过自己的工厂生产披萨的原料,加入到自己的披萨当中,这样,虽然生产的流程不变,但是最终的披萨口味确实符合了当地人民的需求。我们的披萨商店现在可以放心的到处开分店啦。类图: 阅读全文

posted @ 2011-12-22 15:36 开源云 阅读(826) 评论(0) 推荐(0) 编辑

2011年12月16日

摘要: 定义:工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到子类。场景:接简单工厂模式。现在我们纽约的披萨工厂已经转入正轨,我们打算再芝加哥再开一家披萨商店,但是两个地区的人们对于披萨要求的口味各不相同,所以我们需要依据各地的顾客的口味添加不同的原料来制作当地人民喜欢吃的披萨。所以我们用芝加哥商店和纽约商店分别制造属于当地口味的披萨。类图:c++代码如下:#include <iostream>#include <vector>using namespace std;class PizzaType{public: enum EP 阅读全文

posted @ 2011-12-16 09:20 开源云 阅读(793) 评论(0) 推荐(0) 编辑

2011年12月12日

摘要: 定义:从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。场景:我们要开一家比萨商店,定义了一个简单的披萨工厂,可以根据客户的需要制作芝士披萨、辣肠比萨、蛤蜊披萨、素食披萨。根据传入的披萨类型从披萨工厂生产出客户所需要的披萨。类图:c++代码如下:#include <iostream>#include <string>#inc 阅读全文

posted @ 2011-12-12 17:04 开源云 阅读(769) 评论(0) 推荐(0) 编辑

2011年12月8日

摘要: 一、准备1、 rhel5.5版本,必须安装x开发环境2、 http://ftp.gnu.org/gnu/ddd/ ,下载最新的ddd-3.3.12.tar.gz二、安装1、首先安装motif,否则会报“The Motif include file 'Xm/Xm.h' could not be found.”/usr/local#yum install openmotif/usr/local#yum install openmotif-devel2、将ddd-3.3.12.tar.gz上传到服务器3、安装/usr/local#tar zxvf ddd-3.3.12.tar.gz/ 阅读全文

posted @ 2011-12-08 17:03 开源云 阅读(2595) 评论(0) 推荐(0) 编辑

2011年12月5日

摘要: 新项目组的开发用到了一个不太好用的版本控制工具firefly,这东西与eclipse的集成倒是挺好。索性就研究了下linux下的eclipse CDT环境的搭建,其实挺简单的,现总结如下,以供大家参考。使用环境:RHEL5.5 64bit(此处注意,本人使用的是64位系统,32位请选择相应的软件)开发环境:eclipse、CDT、java1.7一、下载1、 Javahttp://www.oracle.com/technetwork/java/javase/downloads/jdk-7u1-download-513651.html我下载的是jdk-7u1-linux-x64.rpm,32... 阅读全文

posted @ 2011-12-05 10:02 开源云 阅读(5714) 评论(0) 推荐(0) 编辑

2011年12月1日

摘要: 定义:装饰者模式动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。场景:我们购买咖啡的时候,可以要求在其中加入各种调料,例如:蒸奶、豆浆、摩卡或覆盖奶泡,而咖啡店也会根据所加入的调料收取不同的费用,所以当我们设计订单系统的时候就需要考虑到这些调料部分啦。顾客的需求不一,如果我们针对每种配方都声明一个类得话,系统的维护将会十分头疼。此时装饰者模式就派上用场啦。我们可以根据顾客的需要动态的扩展顾客定制的咖啡,让其加上不同的调料,最终计算出顾客所需缴纳的费用。它的实现有点类似于递归,在实际使用的时候可以慢慢体会。类图:c++代码如下:不使用指针版本:#include &l 阅读全文

posted @ 2011-12-01 23:18 开源云 阅读(1210) 评论(0) 推荐(0) 编辑

2011年11月18日

摘要: 定义:观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。场景:我们有一个气象站,我们通过WeatherData获取气象站的最新数据,并更新布告板上的数据。我们定义了两个布告板,一个是温度计,显示最新的温度,另一个布告板就是显示当前的所有温度、湿度和气压的最新数据。类图:c++代码如下:#include <iostream>#include <list>#include <string>#include <algorithm>using namespace std;class Observe 阅读全文

posted @ 2011-11-18 16:58 开源云 阅读(1101) 评论(0) 推荐(0) 编辑