今回はChainOfResponsibilityパターンです。
たらいまわし的なことでしょうか?
まず、Approverクラスの子をSetSuccessor()メソッドで鎖状につなげます。
そしたら、その鎖に対してひとつずつ引数として渡されたPurchaseオブジェクトを受け入れるか否かをProcessRequest()メソッドで判定していきます。
もし受け入れるないなら次の要素に走査を進め、受け入れるなら終了的な感じです。
これも、普段の僕ならProcessRequest()メソッドの返り値をboolにしてから、Approver*のベクタを作ってfor文でやっちゃいそうです。
前回のVisitorはOCPっぽかったですけど今回はそんなにOCPっぽくもないし、少し使いどころが難しい気がします。
http://www.dofactory.com/Patterns/PatternChain.aspx#_self2
https://github.com/TakahashiShuuhei/DesignPatternPractice/blob/master/ChainOfResponsibility.cpp