gpt4 book ai didi

java - 创建具有不同属性的对象

转载 作者:行者123 更新时间:2023-12-01 10:02:14 24 4
gpt4 key购买 nike

我对如何从面向对象的角度考虑到可维护性来做到这一点感到困惑。我被教导在设计应用程序时要始终考虑变化。所以我试图花一些时间在个人项目上进行设计,哎呀我可能想稍后更改它。该应用程序的灵感来自最新的游戏《全境封锁》。它将是每秒伤害的计算器。

我选择的技术是 Spring、REST、Hibernate、Angular.js 1.0 和 maven。可能是 Bootstrap ,但我现在不确定,因为我只关注后端。我理解的这些技术并不是这个级别的应用程序真正需要的,但我这样做是为了学习目的。

现在既然您对项目是什么有了一定的了解,那么现在我遇到的问题是。我很难使服务器面向 POJO 对象。

在该部门,我们有武器和装备。武器可以有不同的模组和属性。并非所有武器都可以有相同的模组,例如突击步枪可以有瞄准镜,但为什么霰弹枪会有瞄准镜?武器的属性相对相同,但模组根据所使用的武器类型而有所不同。对于装备来说,根据装备的类型,装备可以具有不同的属性。手套可以具有增加暴击率的属性,而背包可以具有增加弹药容量的属性。手套不能有弹药容量属性,背包不能有暴击率。

手套和背包都是装备,但不是同一类型的装备。武器也是一样,突击步枪和霰弹枪都是武器,但不是同一类型的武器。我考虑过创建一个名为装备和武器的 super 类,然后对不同的武器/装备进行子类化。我对如何从专业角度做到这一点以及作为设计的最佳学习经验感到困惑。

最佳答案

这看起来像是装饰器模式的一个用例。

请点击链接:https://sourcemaking.com/design_patterns/decorator

它甚至有一个类似的使用武器的例子。

当我们想要动态地向对象添加附加属性时,就会使用基本装饰。

创建一个 ModDecorator(基类) 类型的装饰器,并让特定的 mods 扩展它。现在,您可以动态地将这些模组添加到您的武器中。

我对模组/武器/装备/属性的类型不是很熟悉,所以无法给出具体答案,但请点击链接。

关于java - 创建具有不同属性的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36708195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com