Que Padrão de design para fazer isso?

Tenho um processo como um fluxo de trabalho, suponha que seja assim:
  1. Preparar
  2. come.
      Leva as tuas coisas para o bin.
    • limpa a mesa

agora o que eu quero fazer é até o usuário cancela o evento "comer" eu quero que eles "limpar a mesa" o mesmo vale para "preparar" e "levar suas coisas para o lixo" estágios.

Actualmente na minha implementação tive de fazer várias verificações e às vezes acabo por chamar "mesa de limpeza" duas vezes, e alguns outros problemas de ramificação quando adiciono mais alguns passos.

Há algum padrão de design bem definido para lidar com este tipo de fluxos? Há um que não me lembro do nome.)

Author: dr. evil, 2009-05-21

5 answers

Isto é resolvido com o padrão de Estado . Se testares a lógica, vai correr bem.

 9
Author: Matt Hinze, 2009-05-21 10:26:37

Soa como Modelo padrão Método .

Ou pode fazer isto através da composição e padrão estratégico .

Se você começar a ter lógica complicada, então Padrão de Estado poderia ser melhor.

 7
Author: egaga, 2009-05-21 10:29:32

Se está a trabalhar em C++: a aquisição de recursos é a inicialização .

Este problema geralmente não foi resolvido bem em linguagens sem algum tipo de finalização determinística(C#, Java etc.)

 3
Author: Paul Hollingsworth, 2009-05-21 10:24:25

Em C#/. NET, temos o IDisposable padrão. Estou certo que você poderia implementar algo semelhante em outra linguagem, se ou não tem um coletor de lixo (embora a implementação seria ligeiramente diferente).

Em relação ao aspecto do fluxo de trabalho, eu apenas seguiria o padrão de design dos serviços web em WCF (isto é, Métodos Begin e Cancel). Se você não considera isso um exagero para suas circunstâncias, a Fundação Windows Workflow pode ser a melhor maneira de ir.

 2
Author: Noldorin, 2009-05-21 10:35:22

Padrão de Estado a minha tendência é o que vai fazer com que isto funcione no fim.

 1
Author: MRFerocius, 2012-03-24 22:03:39