Design Patterns per la creazione di attività

2

Sto sviluppando un software in cui ogni azione delle mie entità ha bisogno di creare attività che verranno eseguite nella mia infrastruttura. Quando creo un'attività, sono solo i record nel database. Successivamente, verrà eseguito da un servizio Windows.

In realtà, utilizzo un servizio e le mie entità sono anemiche, quindi quando cambio lo stato della mia entità creo anche i miei compiti sull'infrastruttura.

    public void CreateMachine(string name){
      var machine = new Machine(){
                          Name = name,
                          Status = Status.Releasing;
};
      var tasks = new List<Task>(){
                   new Task("CreateMachine", machine.Name),                       //infrastructure task
                   new Task("ChangeMachineSize", machine.Name, machine.Foo),      //infrastructure task
                   new Task("ActivateMachine", machine.Bar),                      //infrastructure task  
                   new Task("SetMachineEntityStatusToReleased", machine.Name)     //business task (go to my database)
      _db.Task.Add(tasks);
      _db.Msachine.Update(machine);
      _db.SaveChanges();
     }
   }

Ma voglio usare un dominio ricco, perché i miei servizi stanno diventando troppo complessi.

    Public Class Machine{

        public Machine(string name)
        {  
          Name = name; 
          Status = Status.Releasing;
          //Can I Create Tasks for create machine here?
        }

        public void Stop(){
          Status = Status.Releasing
          //Can I create Tasks for stop machine here?
        }


        [Required]
        [StringLength(50)]
        public string Name { get; set; }

        public Status Status { get; protected set; }   
}

Esiste un modello di progettazione o una procedura ottimale per questo progetto? Sto violando il principio di responsabilità unica se aggiungo la creazione dell'attività all'interno della mia entità?

    
posta Fernando Mondo 27.06.2014 - 17:10
fonte

1 risposta

1

Publisher / Subscriber , noto anche come Observer mi viene in mente. Una factory di attività può sottoscrivere le modifiche di stato pubblicate dall'entità e creare le istanze dell'attività come dettato dal cambiamento di stato dell'entità.

    
risposta data 27.06.2014 - 19:57
fonte