Miglior design pattern / approach per una Factory che richiede più tipi di input

2

Voglio sviluppare una fabbrica di inotifications.

public interface INotification
{
    string Text { get; }
    string UserId { get; }
    NotificationType NotificationType { get; }
}

Il problema è che NotificationFactory deve essere pronto per ottenere più tipi di input, perché? perché esistono più implementazioni di INotification e la factory dovrebbe essere in grado di restituire l'istanza di ciascuna di esse in base alla richiesta.

INotification not1= NotificationFactory.GetNotification<EmailNotification>(new Email("hi there"));
INotification not1= NotificationFactory.GetNotification<PackageNotification>(new Package("10$","book"));
INotification not2= NotificationFactory.GetNotification<XXXTypeNotification>(new XXXX);

Come vedete, avrebbe diversi tipi nei parametri di input (sono noti in fase di progettazione) Non vorrei creare un metodo per ogni tipo di notifica che la fabbrica è abilitata a creare ... Posso progettare quella fabbrica? Non ha bisogno di usare i generici, il codice che ho allegato serve solo a capire il problema.

Grazie mille !!

    
posta Badulake 26.05.2018 - 13:25
fonte

0 risposte