Lo so secondo il principio di open closed, qualcosa come la classe, l'interfaccia, il codice .... dovrebbe essere invariato quando aggiungi nuove funzioni o contenuti, ma è anche un file in questo caso?
Stavo progettando un gioco, il gioco ha alcune informazioni sui mostri e il gioco (nel lato client) può scaricare o sostituire alcuni file se ci sono nuovi mostri da aggiungere o aggiornare.
Ero preoccupato di quale dovrebbe essere il formato delle informazioni sui mostri: 1 file con tutte le informazioni sui mostri o ogni mostro ha un singolo file?
1. Memorizza tutte le informazioni dei mostri in un singolo file (ad esempio: monsterlist.json), ogni volta che aggiungi un nuovo mostro sostituirà il file, ad esempio:
{
"monsterList":[
{
"id":1,
"hp":100,
"attack":230,
},
{
"id":2
"hp":500
"attack":980
}
]
}
2. Ogni mostro ha un singolo file, ogni volta che aggiungi un nuovo mostro verrà aggiunto anche un nuovo mostro:
monster1.json
{
"id":1,
"hp":100,
"attack":230,
}
monster2.json
{
"id":2,
"hp":500,
"attack":980,
}
All'inizio credo che il caso 1 sia più comodo, perché quando aggiungo o aggiorno qualsiasi mostro ho solo bisogno di sostituire monsterlist.json, ma per il caso 2, ho bisogno di sapere quale json è nuovo (potrebbe aver bisogno di una riga aggiuntiva per memorizzare lo stato di aggiornamento nel database del server).
Ma improvvisamente ricordo principio aperto e chiuso, l'aggiunta di qualcosa di nuovo non dovrebbe modificare il contenuto attuale, non sembra ragionevole sostituire un file quando viene aggiunto un nuovo mostro.
Nota: non sto chiedendo quale formato è migliore (che è basato sull'opinione pubblica), l'esempio sopra è solo le informazioni di base per illustrare il motivo per cui avrei questa domanda. La cosa che voglio chiedere è solo: il "file" partecipa anche al principio di open closed?