我正在研究资源处理器(OSGi纲要,6.0.0,114.10),该处理器解析YAML文件并通过游戏的Item Admin服务创建Items。我想作为部署程序包(cmpn,114.2)进行部署:
框架包含Item Admin服务和Item Resource Processor。游戏包含YAML资源,这些资源包含包含剑在内的物品的定义。
id: sword
游戏还包含用于物品相关属性的资源处理器和服务,例如通过物品伤害管理服务击中物品时造成的伤害:
item:
id: sword
damage: 10
玩家玩游戏并享受游戏。他们唯一的抱怨是他们希望剑能造成更多的伤害。他们想看看,如果剑造成的伤害超过开发商指定的伤害,是否会更有趣。他们也想尝试很多其他值(3、40、100、500、99999),而又不会增加迭代的负担。
物品损坏管理员提供了一种设置物品造成的损坏的方法,setDamage(item: Item, damage: Int)
。物品损坏资源处理器使用此方法设置安装游戏时物品的损坏。
玩家可以在不使用资源处理器的情况下,以持久的方式修改剑的伤害,而不必重新创建游戏部署包吗?
资源-部署包中的一个文件,经过处理以在框架中创建构件。 例如,捆绑,配置和权限是不同的资源。 -(cmpn,114.1.2)
工件-从部署包中的资源创建的构造。资源可以 有零个或多个与之相关的工件。工件没有通用的界面,因为它们 性质不同,资源处理器服务抽象了它们的存在。神器必须 删除其相关资源后将其删除。工件的一个例子是配置 从部署程序包中的配置文件创建的对象。 -(cmpn,114.1.2)
部署程序包是一组相关的资源,需要将其作为单元而不是单独进行管理 件。例如,一个部署程序包可以同时包含捆绑软件及其配置 数据。部署软件包的资源与部署软件包紧密相关,并且 无法与其他部署程序包共享。 -(cmpn,114.2)
部署包将拥有其资源。如果卸载了部署软件包,则其所有资源, 因此,也必须将其文物去除。所有权模型遵循不共享 原则:部署程序包之间不共享相等的资源。 -(cmpn,114.2.2)
由于资源(包含物品损坏的YAML文件)创建了0..n伪像(物品损坏对象/关联),并且资源不得在部署包之间共享,这是否也意味着物品也不能在部署包之间共享?还是我可以在安装游戏后的某个时间修改Artifact,而不必更新部署包,只要在删除资源后仍可以删除Artifact?