Ho una classe, qualcosa come questa (C #):
public class MyFavoriteClass
{
public string Name { get; set; }
public string Description { get; set; }
(...)
public ReferencedClass1 ReferencedClass1 {get; protected set;}
public ReferencedClass2 ReferencedClass2 {get; protected set;}
public ReferencedClass3 ReferencedClass3 {get; protected set;}
public AnotherReferencedClass1 AnotherReferencedClass1 {get; protected set;}
public AnotherReferencedClass2 AnotherReferencedClass2 {get; protected set;}
public AnotherReferencedClass3 AnotherReferencedClass3 {get; protected set;}
}
Le classi di riferimento non hanno alcuna classe di antenato comune.
Ci sono dei vincoli:
Oggetto (istanza di MyFavoriteClass) può aver impostato solo una delle proprietà ReferencedClass1, ReferencedClass2 e ReferencedClass3. Gli altri devono essere nulli.
Stessa regola per AnotherReferencedClass1, AnotherReferencedClass2 e AnotherReferencedClass3.
Qual è il modo migliore per far rispettare questi vincoli? Nel modello di fabbrica? Devo scrivere nove metodi in questa fabbrica? O dovrei wrappare queste opzioni in un altro oggetto?