Welcome

首页 / 软件开发 / VB.NET / 游戏大厅从基础开始(4)-通过L2X用配置文件反射组装程序(VB only)

游戏大厅从基础开始(4)-通过L2X用配置文件反射组装程序(VB only)2010-01-04 cnblogs 韦恩卑鄙很久没更新了。前一阵工作比较充实(就是比较劳累拉~),加上向老赵学习努力瘦身,精神愈发痛 苦,难免就懒惰下来。通用倒了,项目突然死亡,On bench了一个月,越发的无力。

好消息也是 有的,在m$ msdn论坛努力回答问题,总算当上了个版主。虽然7月申请mvp失败 但是鄙人生性好显摆,好听一点就是爱分享,所以一个咕噜爬起来,又是条好汉。

-----------------------闲话到此 为止-----------------------

通过配置来制定程序

说起通过配置来制定程序,不得不 提及asp.net

还记得asp.net membership 在web.config中的声明么?

<membership defaultProvider="Main_SqlMemberShipProvider" userIsOnlineTimeWindow="20">

<providers>

<add connectionStringName="GTSCOM_DATABASE_DATAConnectionString1" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" passwordFormat="Clear" applicationName="GTSCOM_Customer" name="Main_SqlMemberShipProvider" type="System.Web.Security.SqlMembershipProvider"/>

</providers>

</membership>

实现不同工厂产生了相同接口的实体类型 MembershipUser

Web.config 就是这么神奇,动不动什么东西就加入进来了~ 编译器往往是根据web.config生成 临时cs/vb代码,将其编译结果作为网站的基础 。

编译config提升的性能我可是非常羡慕阿,但 是改配置就重新编译这样的事情也经常被诟病。改一个连接字符串整个网站编译5分钟的抱怨,偶尔也会 听到。

咱们的游戏大厅,无论是做web game 还是做联众,都不适合

另一种办法就是反射 了。

l 大厅组装要求

n 动态加载需要的类库(多种游戏逻辑、房间逻辑、副本类型的 工厂载入)

n 策略配置 (策略模式的策略类的载入)

n 通过reload config 修改工厂 类和策略类 实现无重启的“下一场游戏生效”配置更新。

n 性能不能受到过多影 响

Okay,反射都能胜任。

如果反射得到的都是实现主程序引用中IFactory接口的工厂,返 回的都是符合IProductClass 接口的对象,访问成员都通过访问接口进行,初始化以外性能上也不会受 影响。看起来十分可行!

另一方面:

l 配置文件要求

n 让我这个懒蛋比较容易 读(架构清晰)

n 让我这个懒蛋比较方便写 (编写智能提示)

n 写程序的时候比较舒 坦 (编程智能提示)

恩,眼睛里冒贼光了。