Immagina di avere due classi come questa ...
public class SingleplayerGameSetup
{
public int Seed { get; private set; }
public int AiNations { get; private set; }
}
public class MultiplayerGameSetup
{
public int Seed { get; private set; }
public int AiNations { get; private set; }
public List<IpAdress> Clients { get; private set; }
}
... e davvero non mi piace il fatto che abbiano membri comuni.
Quando prendo l'approccio della classe base, la classe SingleplayerGameSetup
diventa vuota:
public abstract class GameSetup
{
public int Seed { get; private set; }
public int AiNations { get; private set; }
}
public class SingleplayerGameSetup : GameSetup
{
//This class is basically empty right now.
}
public class MultiplayerGameSetup : GameSetup
{
public List<IpAdress> Clients { get; private set; }
}
L'altro modo in cui posso pensare è creare una classe che contenga i membri comuni:
public class SharedGameSetupSettings
{
public int Seed { get; private set; }
public int AiNations { get; private set; }
}
public class SingleplayerGameSetup
{
public SharedSettings SharedGameSetupSettings { get; set; }
}
public class MultiplayerGameSetup
{
public SharedSettings SharedGameSetupSettings { get; set; }
public List<IpAdress> Clients { get; private set; }
}
Quale approccio è migliore? O c'è un approccio migliore?
Grazie.