Personalmente, lo chiamo Pattern Blueprint; tuttavia, sono sicuro che qualcun altro deve averlo già nominato. I membri statici, nella maggior parte dei casi, non sono una buona cosa. In linguaggi come C # e Java, rimuovono il polimorfismo e incoraggiano un design scadente. Tuttavia, molte volte, ci sono proprietà condivise da tutte le istanze.
//Original class where shared properties are static
class StandardHenchman
{
static int MaxHealth;
static int Speed;
int CurrentHealth;
int X;
int Y;
}
//More maintainable and flexible design
class NPCType
{
int MaxHealth;
int Speed;
}
class NPC
{
NPCType Type;
int CurrentHealth;
int X;
int Y;
}
henchman1 = new NPC();
henchman1.Type = standardHenchman;
henchman2 = new NPC();
henchman2.Type = standardHenchman;
È possibile duplicare semplicemente i valori condivisi in ogni istanza, ma penso che abbia anche problemi.
Qual è il pattern chiamato dove dichiari membri condivisi / statici con composizione?