设计模式
文章平均质量分 80
go-sunny
这个作者很懒,什么都没留下…
展开
-
充值系列——充值系统业务逻辑层实现(三)
x原创 2013-12-12 13:51:09 · 5986 阅读 · 2 评论 -
充值系列—充值系统数据库设计(一)
在我们的游戏充值模块中,接入了支付宝,苹果,Paypal, googleplay , mycard, mol, 360,机锋,91等各种充值渠道。这篇文章(包括接下来的几篇文章)将对充值系统的需求,构架,充值执行流程,安全处理,各种渠道的详细接入方式等各个方面做出详细的说明。一方面对目前做的工作作出一个总结,方便以后代码的复用,另一方面,可以给需要做充值模块的同学一点参考资料。 充值原创 2013-11-25 15:36:45 · 21884 阅读 · 1 评论 -
memcache系列--处理缓存的三种方案(三)
这篇文章主要讨论的问题是:如何为项目设计一个完整而简洁的缓存系统。在我们项目中,使用到了三种方法,来保证了缓存系统的有效简洁。只讲使用,不讲原理。1) 第一种,最常见的方式 读取数据的主要步骤如下:1)先从缓存中获取数据(如果在缓存中获取到,则直接返回已获取的数据)2)如果获取不到,再从数据库里面读取相应的数据 3) 把获取到的数据加入缓存中注意:这种方式是在M原创 2013-10-21 22:49:02 · 2787 阅读 · 0 评论 -
memcache系列---缓存代理类的实现(二)
在项目中可能会使用到多种缓存技术,如memcache,redis,文件缓存等。如果能把这些缓存机制统一接口,对外开放,让使用者可以不用关心缓存的内部实现就可以随意调用这些缓存类。比如我要使用memcache把key=>value保存在static_zh这台memcache服务器上。我期望的实现方式是: F('Memcache')->static_zh->set('key', 'value');原创 2013-12-03 15:14:43 · 1868 阅读 · 0 评论 -
memcache系列——memcache客户端类的实现(一)
一个memcache类的具体实现过程:class Core_Memcache { private $_cache; private $_isMemcached; private function _connect() { if ($this->_cache != null && is_object($this->_cache)) {原创 2013-12-01 23:18:01 · 1575 阅读 · 0 评论 -
设计模式系列:策略模式在战斗结算中的运用
先给一个设计原则:多用组合,少用继承。这就话就是策略模式的精髓了。下面结合我们项目中的实际问题,详细说明策略模式的使用。1.1 战斗结算在游戏战斗模块中,战斗结果结算是一个很复杂的问题,在我们的项目中,对于不同的战斗类型有不同的结算方式,例如:1)玩家之间的战斗过程中,玩家的装备有几率的摔坏,如果战斗胜利,可以抢夺对方的道具,银币。如果胜利方触发了“战斗结算技能”,还有更多额外的奖励。原创 2013-10-19 15:12:23 · 2003 阅读 · 0 评论 -
异常处理的实现
异常的定义异常用于处理用于指定的错误发生时改变脚本的正常流程。理解这句话需要知道两点:什么是程序指定的错误,什么是改变脚本的正常流程。指定的错误不同于语法错误,或者程序逻辑错误,它是一个特殊约束性事件。如在游戏中用户购买东西时金币不足,就是异常。这个事件虽然不是程序的语法错误,但我们需要特殊处理。使用其他程序模块处理这个异常的动作就叫做 改变脚本的正常流程。处理异常实现异常处理原创 2013-10-09 22:47:29 · 1258 阅读 · 0 评论 -
游戏成就系统的实现
在游戏系统中,我们需要给玩家设计出一个成就系统,给玩家设定目标,同时满足玩家的荣誉感。获得成就需要一定的条件,也就是,玩家需要完成某种指定的动作后,才可以获得需要的成就。原创 2013-08-01 21:52:19 · 7952 阅读 · 1 评论 -
装饰模式:英雄装配装备
如题原创 2013-07-19 00:24:23 · 1554 阅读 · 0 评论 -
充值系列——充值系统的架构(二)
上一篇文章主要介绍了充值系统的基本概要说明和数据库设计。这篇文章主要讨论充值的基本流程和系统架构。简单来说,充值的基本流程就是:玩家选择一个支付平台,选择这个平台下面出售的某个商品,付款成功后玩家会得到所购买的商品。数据交互图玩家客户端指的是浏览器或者SDK。上面数据交互图中需要有几点注意:(1)玩家客户端,游戏服务器,支付平台这三者之间扮演的角色需要注意的是,游戏原创 2013-11-25 18:26:20 · 10730 阅读 · 0 评论