设计模式(c++)
文章平均质量分 78
zhanglifu081022
这个作者很懒,什么都没留下…
展开
-
C++设计模式之装饰(Decorator)模式
理论不多讲,直接上例子吧:在一些赛车类游戏中,我们可以对自己的进行装饰(实际就是贴图),比如有一辆黑色的tubo911,我要将其进行喷漆弄成红色,过了一段时间,我又想将其喷成墨绿色,这样的功能怎样设计呢?可能我们第一想到的是用子类来拓展这样的功能,但是假如喷涂的顺序会对效果产生影响呢,就会发生子类爆炸的问题:黑色车涂红色、黑色车涂墨绿、黑色车先涂红色再涂墨绿、黑色车先涂墨绿再涂红色,每种效果都要创原创 2013-10-21 23:23:52 · 701 阅读 · 0 评论 -
C++设计模式之单例(Singleton)模式
单例模式,是一个相对简单且常用的一个设计模式,也许我们一直都在使用,只是不知道这就是单例模式。我们在大型工程中,为了让程序更具拓展性,且方便策划进行数值微调等,都会将一些内容写到一个配置文件中(常见的是XML配置文件)。程序负责解析配置文件,并根据配置内容作出相应的操作。但是,配置文件一般调配好后很少改动,且解析配置文件需要耗费一定的资源(时间、存储空间等),一般不会写一个解析类,每次需要用的时候原创 2013-10-22 00:12:35 · 701 阅读 · 2 评论 -
C++设计模式之代理(proxy)模式 -- 伪代理
前面写了代理模式的一种使用方式——句柄,接下来要介绍伪代理。我们在浏览比较大的word文档或PDF文档是,常常会遇到这种情形:前面看过和当前看的部分显示正常,当我们将鼠标按住滚动条迅速往下翻页的时候,会发现后面的文档还在加载,或者文字已经出来了,但图像还在处理,当然,这是在电脑配置比较低的情况下才能见证的。那么这是为什么?难道不是打开文件的时候全部内容都解析出来吗?或者将文字解析出来的部分也把原创 2013-10-23 00:07:19 · 574 阅读 · 0 评论 -
C++设计模式之代理(proxy)模式 -- 句柄
代理模式,个人认为用的比较多的实现方式为句柄和伪代理。一、句柄所谓句柄,就是可以用一个句柄类对象去操作一个或多个对象,而不用关心操作对象的实现。我们可能对遇到这种情况:对于操作的每种情形,都具有相似或相同的接口,但接口的具体操作不相同,而对于类用户来说,并不想知道你的每种实现类,只想用一个对象和一组接口进行操作。这个时候,比较好的解决方法是句柄。实例:对一个游戏来说,可能有几种不同的战原创 2013-10-22 22:56:22 · 964 阅读 · 0 评论 -
C++设计模式之抽象工厂(Abstract Factory)模式
抽象工厂模式,是使得用户接口与实际的对象生成相分离,用户使用统一的接口时,系统根据用户的设置或环境,生成出不同的对象。比如我们的电脑系统,创建窗口时统一使用接口CreateWindow,创建滚动条时使用CreateScrollBar,但是系统在我们设置不同的主题风格时,对生成出来的窗口和滚动条有不同的表现,也就是生成了不同的对象。如下图所示,Factory就是面向用户的接口,只有创建窗口和滚动原创 2013-10-29 23:10:16 · 587 阅读 · 0 评论