“文件”是否也参与公开封闭原则?

时间:2015-08-17 09:50:50

标签: file design-patterns language-agnostic open-closed-principle

我知道根据开放的封闭原则,类似于类,接口,代码......在添加新函数或内容时应该保持不变,但在这种情况下也是文件?

我正在设计游戏,游戏中有一些怪物信息,游戏(在客户端)可能会下载或替换某些文件,如果有新的怪物需要添加或更新。

我担心怪物信息的格式应该是什么:1个包含所有怪物信息的文件或每个怪物都有个别文件?

1.将所有怪物信息存储到一个文件中(例如:.monsterlist.json),每次添加新怪物都会替换该文件,例如:

{  
    "monsterList":[
        {
            "id":1,
            "hp":100,
            "attack":230,
        },
        {
            "id":2
            "hp":500
            "attack":980
        }
    ]
}
2.每个怪物都有一个单独的文件,每次添加一个新的怪物也会添加一个新的怪物json:

monster1.json

{
    "id":1,
    "hp":100,
    "attack":230,
}

monster2.json

{
    "id":2,
    "hp":500,
    "attack":980,
}

一开始我认为案例1最方便,因为当我添加或更新任何怪物时我只需要替换monsterlist.json,但对于案例2,我需要知道哪个json是新的(可能需要额外的行来存储)服务器数据库中的更新状态。)

但是突然我记得开放的封闭原则,添加新的东西不应该修改当前内容,添加新怪物时替换文件似乎不合理。

以上只是我认为“文件”包含在开放封闭原则中的原因的例子,而不是询问哪种格式更好。我要问的主要问题不是哪个文件格式更好,而是开放封闭原则的定义,因为我找不到任何提到“文件”的定义,一旦确认,我就可以推断出应该使用哪种格式的文件。

0 个答案:

没有答案