DoThis的“程序性”设计模式 - >然后这个 - > AndThenThis

时间:2010-09-09 12:07:10

标签: design-patterns

我正在尝试找到一个有用的设计模式,模拟以下内容:

DoThis()->ThenThis()->FinallyDoThis() then print "Hello world"
除非ThenThis()通过,否则

DoThis()无法运行。除非FinallyDoThis()ThenThis()都通过,否则DoThis()将无法运行。如果所有方法方法都通过,那么它会打印“Hello world”。

是否有适合这种情况的现有设计模式?我一直在调查monad的用法,但不确定它们是否适用于这种情况。

2 个答案:

答案 0 :(得分:4)

如果语言if语句短路,您可以在不知道语言的情况下将其置于if语句中。然后让每个函数返回true或false:

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

答案 1 :(得分:4)

如果您正在寻找设计模式。我认为这是Chain-of-responsibility pattern