Voglio creare un pattern builder in un'applicazione DDD, ma il mio costruttore non è stateless, non è un'entità e non è un servizio.
Se l'apolide dovrebbe essere utilizzato per il servizio, come rendere il modello di builder come un servizio stateless con il parametro specifico del sottotipo e l'inizializzazione?
E come rendere la composizione di classe factory oltre l'inerzia.
(La mia classe di builder è chiamata factory)
Questo è corretto? Poiché la proprietà EnvoieGAV impostata nel costruttore FactoryFicheGav non è stateless.
Classe base
public interface IFactoryFiche
{
}
public interface IFactoryForType
{
ContactInfoCommands GetContactInformation();
void InitFiche(Fiche fiche);
}
public class FactoryFiche : IFactoryFiche
{
public void CreateFiche(IFactoryForType factoryForType)
{
var contact = factoryForType.GetContactInformation();
Fiche fiche = new Fiche()
{
nom = contact.Nom,
prenom = contact.Prenom,
Adresse1 = contact.Adresse1,
Adresse2 = contact.Adresse2,
ville = contact.Ville,
codePostal = contact.CodePostal,
email = contact.Email,
};
factoryForType.InitFiche(fiche);
}
}
Classe specifica
public class FactoryFicheGav : IFactoryForType
{
public EnvoiGAVCommands EnvoieGAV { get; set; }
public FactoryFicheGav(EnvoiGAVCommands envoieGAV)
{
EnvoieGAV = envoieGAV;
}
public ContactInfoCommands GetContactInformation()
{
return EnvoieGAV.ContactInfoCommands;
}
public void InitFiche(Fiche fiche)
{
}
}