当前位置: 首页 > news >正文

国外网站设计公司网站做微信公众号

国外网站设计公司,网站做微信公众号,怎么用壳域名做网站,辽宁省建设工程新希望官网背景: 游戏服务器中,多态可以说体现的淋漓尽致。 如: 1.开启条件。有的系统是根据玩家等级,有的是根据通关第几关。 2.商店可能有不同类型的商店。 3.任务系统中,不同的计数类型,不同的任务目标类型。…

背景:

游戏服务器中,多态可以说体现的淋漓尽致。

如:

1.开启条件。有的系统是根据玩家等级,有的是根据通关第几关。

2.商店可能有不同类型的商店。

3.任务系统中,不同的计数类型,不同的任务目标类型。

4.功能开启中,不同的系统开启条件不同。

....

稍微复杂一点的系统都会涉及到多态。

我们往往需要采用一种一致的接口去处理,这样子可以避免冗余代码。但是他们需要的数据却不同。

经过我的实践,我觉得一种比较好的写法如下:

ETest.java  // 枚举所有的类型

package org.example.enumDuoTai;import org.example.enumDuoTai.data.ATestData;
import org.example.enumDuoTai.data.BTestData;
import org.example.enumDuoTai.data.ITestData;public enum ETest {A {@Overridepublic void test(ITestData data) {ATestData aTestData = data.get();System.out.println("roleId="+ aTestData.getRoleId() + " a=" + aTestData.getA());}},B {@Overridepublic void test(ITestData data) {BTestData bTestData = data.get();System.out.println("sn="+ bTestData.getSn() + " B=" + bTestData.getB());}},;public abstract void test(ITestData data);
}

ITestData.java // 数据接口

package org.example.enumDuoTai.data;@SuppressWarnings("all")
public interface ITestData {default <T extends ITestData> T get(){return (T)this;}
}

ATestData.java // 数据参数实现1

package org.example.enumDuoTai.data;import lombok.AllArgsConstructor;
import lombok.Data;@Data
@AllArgsConstructor
public class ATestData implements ITestData{private long roleId;private int a;
}

BTestData.java // 数据参数实现

package org.example.enumDuoTai.data;import lombok.AllArgsConstructor;
import lombok.Data;@Data
@AllArgsConstructor
public class BTestData implements ITestData{private int sn;private String b;
}

Main.java

package org.example.enumDuoTai;import org.example.enumDuoTai.data.ATestData;
import org.example.enumDuoTai.data.BTestData;public class Main {public static void main(String[] args) {ETest.A.test(new ATestData(4097, 1));ETest.B.test(new BTestData(1001, "jn"));}
}/*
roleId=4097 a=1
sn=1001 B=jn*/

总结:

这样子,我们就可以在枚举中无限扩展,像我做的MMO游戏,排行榜来说,最多也就35种,看起来行数多了点,但是实际上维护性还是可以。这种枚举的多态,实现比较简单。

这样子通过接口,让所有的操作都是强类型的,是比较简单的。

而且枚举有values,天然实现了遍历,也就是工厂模式。

http://www.yayakq.cn/news/812937/

相关文章:

  • 关于网站集约化建设的意见分栏式网站
  • 网站有死链接怎么办合肥网站seo整站优化
  • wordpress外链站内打开岳阳网站建设解决方案
  • wordpress网站怎样如何做网站的链接结构
  • 免费做网站软件2003太原网页设计与制作
  • 外包项目网站宁波seo排名公司
  • 火车头发布wordpress带磁力链宁波网站推广网站优化
  • 建网站服务公司wordpress 微博
  • 企业被网站收录备案期间网站能打开吗
  • 1688企业网站建设临安网站建设公司
  • 做高端品牌生产商的网站ui设计包括哪些内容
  • 网站改版的必要性检查wordpress主题
  • 网站建设路由器怎么设置免费给网站做seo
  • 济南建网站公司优书网有官方app吗
  • 网站建设优化排名推广个人网站设计成首页
  • 天津市网站建设公司唐山百度seo公司
  • wap织梦手机网站网页更改
  • 网站后台管理系统制作软件wordpress用户名u开头
  • 网站功能设计的内容质量检测中心培训网站
  • 寿光做网站的做网站用什么域名比较好
  • 海口网站建设服务注册的空间网站吗
  • 官方网站建设源码系统做网站竞价没有点击率
  • wordpress the7下载seo 网站 制作
  • 网站开发的核心技术泰安网红打卡地
  • 做ae好的网站有哪些网页版梦幻西游全新联动
  • 网站开发人员薪酬网站推广适合女生做吗
  • 北京电商网站建设外包群晖 wordpress配置
  • 买了个域名怎么做网站购买域名有什么用
  • 网站建设对比怀化市住房和城乡建设局网站
  • 影视文化传媒公司网站建设一站式做网站多少钱