美文网首页Java游戏服务器开发产品汪的自我修养
游戏服务器开发如何组织业务逻辑的处理结构?

游戏服务器开发如何组织业务逻辑的处理结构?

作者: 王广帅 | 来源:发表于2018-10-02 17:45 被阅读39次

游戏服务器就是对游戏数据的处理及逻辑验证,一般的步骤就是:

1,接收客户端请求的数据

2,根据请求的数据找出是哪个业务的请求

3,处理业务的请求

4,更新被修改的数据。

5,返回数据给客户端。

所以按照以上的步骤,我们现在只关心业务逻辑的处理流程,这里设置一个前题,就是服务器的数据都是在内存中的。内存中的数据与数据库的同步由底层的其它系统处理。在内存中,我们创建并缓存一个对象Player,它包括所有模块的数据,比如背包,个人商店(Shop),技能(Skill),武将,副本 等等,Player只是数据类,里面不应该包括任何逻辑方法,所有的逻辑方法操作应该在Manager中处理。比如ShopManager。

业务处理流程

比如我们使用netty做为网络层的通信框架,在Channel的Handler中收到客户端请求的数据,根据请求的消息号,调用处理业务的Handler。在业务的Handler中验证参数的合法性,然后再调用业务逻辑的Service层,Service层负责的业务流程的处理,比如购买商品,第一步判断商品是否已卖完,第二步判断剩余数量是否足够,第三步判断是否已购买过,第四步判断钱是否足够,第五步是付钱,第六步是发送购买获得的道具。这里面应该都是方法的调用,而没有任何数据的处理,数据的处理由第三层的Manager管理。Manager对应中声明一个参数Player,在创建Manager对象时传入,不同的模块数据之间交互都由Manager处理,Manager中的方法职责单一,只负责处理一件事情。每个用户的每个模块Manager对象各一个。用户之间不共享,这样可以减少参数的传入。这样更加方便面向对象的设计。方便对业务逻辑进行单元测试。

Service层

每个用户的每个模块的Manager实例存储在当前用户业务逻辑处理的线程的LocalThread中的HashMap中,这样方便管理又避免使用锁了。使用一个ManagerFactory对象统一管理Manager对象的创建和获取。

ManagerFactory

相关文章

  • 游戏服务器开发如何组织业务逻辑的处理结构?

    游戏服务器就是对游戏数据的处理及逻辑验证,一般的步骤就是: 1,接收客户端请求的数据 2,根据请求的数据找出是哪个...

  • java日志简介

    前言 最近学习开java web服务器开发,开始学习java,处理业务逻辑,但对其中的日志比较好奇,之前没怎么接触...

  • iOS登录及token的业务逻辑

    iOS登录及token的业务逻辑 登录的业务逻辑 { http:是短连接. 服务器如何判断当前用户是否登录? //...

  • 如何组织大型 vue 应用

    本文介绍如何使用 Vue CLI 命令行,结合业务逻辑和国际化功能,更好组织项目结构。 简介 vue.js 作为一...

  • APP开发实战54-业务逻辑层设计(Presenter)和数据访

    15.2.3业务逻辑层设计(Presenter) 业务逻辑层包括业务处理、数据的生成、处理和转换等业务逻辑相关的类...

  • Structs框架

    Structs结构 Structs框架结构采用MVC设计模式,同时包含客户端(client),请求以及业务逻辑处理...

  • 数据结构与算法 —— 00 绪论

    2017/05/31 数据结构与算法 表现形式: 1)逻辑结构(逻辑上是如何组织(即表示)数据的) 线性结构('均...

  • 手把手教程,如何设计编写一个 SDK

    App 的开发更偏向于用户层面,从 UI 展示到业务逻辑处理,全程处理用户的行为。而 SDK 面向的是开发者,开发...

  • MVC三层结构

    Model模型层,处理数据库的数据,业务逻辑处理 View视图层,界面层,前台的结构 Controller控制层,...

  • 2016年11月7日 周一 读书打卡

    表现层:信息展示,与用户交互,并给予响应,然后通过网络传输给服务器端的业务逻辑层进行处理。 业务逻辑层:体现用户任...

网友评论

    本文标题:游戏服务器开发如何组织业务逻辑的处理结构?

    本文链接:https://www.haomeiwen.com/subject/iwaooftx.html