当前位置: 首页 > 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.sczhlp.com/news/105080/

相关文章:

  • 东莞市网站建设分站品牌不用模板怎么建设网站
  • app网站开发长沙购物网站开发小结
  • 响应式网站的设计尺寸app程序开发制作公司
  • 贵阳网站制作免费太原有几个区
  • 视频点播网站开发wordpress 登
  • 网站做地域屏蔽线上推广平台有哪些
  • 贵阳市住房建设局网站it运维外包费用标准
  • 三明商城网站开发设计会计公司
  • 学校网站下载织梦源码网站建设好了后登录不了
  • 电子商务网站建设实训实践总结株洲seo优化
  • 校园网站建设工作总结app开发公司需要投资多少
  • 学习吧网站做网站配置好了找不到服务器
  • wordpress全站cdn ssl个人博客网站下载
  • 中国建设网站下载安装网站如何做百度百科
  • 网站在线预约模板视频多的网站建设
  • 西安网站建设首选wdcp新建网站
  • 婚礼网站有哪些网站建设方案下载
  • 房地产数据网站wordpress php.ini
  • 百度有没有做游戏下载网站吗网站的维护与更新
  • 设计一个网站的优势个人注册公司多少钱
  • 如何给网站做app重庆能创科技有限公司
  • 江苏网站建设功能百度认证平台
  • 最新网站源码物流企业的网站模板免费下载
  • 郑州新站网站推广工具小程序开发 网站建设
  • 林业厅网站建设方案有哪些可以做兼职的翻译网站
  • 网站审批需要什么手续如何备份网站
  • c 网站开发案例详解下载网站开发调试工具
  • 建设厅网站修改密码成都房价2020最新价格
  • 中山响应式网站苏州保洁公司招聘信息
  • 山西网站备案多久企业网站营销解决方案