2010-09-09 5 views
0

Je suis en train de trouver un modèle de conception utile qui simule quelque chose comme ce qui suit:Design Pattern "procédure" pour DoThis-> ThenThis-> AndThenThis

DoThis()->ThenThis()->FinallyDoThis() then print "Hello world" 

ThenThis() ne court pas à moins que DoThis() passe. Et FinallyDoThis() ne fonctionnera pas sauf si ThenThis() et DoThis() tous les deux passent. Si toutes les méthodes méthodes passent, alors il affiche "Hello world".

Existe-t-il un modèle de conception existant qui conviendrait parfaitement à cela? J'ai enquêté sur l'utilisation des monades, mais je ne sais pas si elles sont applicables à cette affaire.

+0

Vous voulez dire dans un langage de programmation fonctionnel? – kennytm

Répondre

4

si vous êtes à la recherche d'un motif de conception. Je pense que c'est Chain-of-responsibility pattern

+0

+1: sauf que la chaîne continue jusqu'à l'échec au lieu de continuer jusqu'au succès. Mais certainement mise en œuvre similaire et concept. –

+0

Merci d'avoir mentionné un modèle de design qui était la demande originale. – elmt

4

Sans connaître votre langue, vous pouvez le mettre dans une déclaration if si la déclaration de la langue if court-circuite. Ensuite, chaque fonction renvoie vrai ou faux:

if(foo() && bar() && baz()){ 
    System.out.println("hello world"); 
} 
Questions connexes