So che in genere è un difetto del design avere una classe vuota, eppure mi chiedo se ci siano casi in cui non è necessario avere una classe vuota (astratta) per raggruppare oggetti. Soprattutto quando è necessario il polimorfismo.
Ad esempio, ho un gruppo posizione . Possono consistere in un'area , una riga (una strada per esempio) o uno specifico punto (come una casa). Nella struttura dei dati richiede solo di contenere le coordinate.
So che tutti hanno almeno un singolo punto in comune, tuttavia è davvero bizzarra la proprietà quando avrei una coordinata nella mia classe location .
Al momento stavo pensando alla seguente soluzione:
public abstract class Location {
}
public class Point: Location
{
public double X {get;set;}
public double Y {get;set;}
}
public class Line : Location
{
public double StartX {get;set;}
public double StartY {get;set;}
public double EndX {get;set;}
public double EndY {get;set;}
}
So che non è un esempio perfetto in quanto vi è un'altra soluzione più corretta in questo caso e probabilmente ci sono oggetti per questa soluzione trovata nelle librerie .Net.
Ma come sono risolte le cose in generale?