我知道根据开闭原则,类,接口,代码......添加新功能或内容时应该保持不变,但文件也在这种情况下吗?
我在设计一个游戏,游戏有一些怪物信息,如果有新的怪物要添加或更新,游戏(在客户端)可能会下载或替换一些文件。
我在担心怪物信息的格式应该是什么:1个包含所有怪物信息的文件还是每个怪物都有单独的文件?
1.将所有怪物信息存储到一个文件中(例如:monsterlist.json),每次添加新怪物都会替换该文件,例如:
{
"monsterList":[
{
"id":1,
"hp":100,
"attack":230,
},
{
"id":2
"hp":500
"attack":980
}
]
}
2.每个怪物都有一个单独的文件,每次添加一个新怪物也会添加一个新的怪物json:
怪物1.json
{
"id":1,
"hp":100,
"attack":230,
}
怪物2.json
{
"id":2,
"hp":500,
"attack":980,
}
一开始我认为case 1最方便,因为当我添加或更新任何怪物时,我只需要替换monsterlist.json,但是对于case 2,我需要知道哪个json是新的(可能需要额外的行来存储更新状态在服务器数据库中)。
但是突然想起开闭原则,添加新东西不应该修改当前内容,添加新怪物时替换文件似乎不合理。
以上只是我认为“文件”是否包含在开放封闭原则中的示例,而不是询问哪种格式更好。我要问的重点不是哪种文件格式更好,而是开闭原则的定义,因为我找不到任何提到“文件”的定义,一旦确定,我就可以推断出应该使用哪种文件格式。