ビジターパターンの使用シナリオではこれが見つからないようです(または、取得できない可能性があります)。また、階層的ではありません。
認証の例を使用してみましょう。UserAuthenticatorは、ユーザーから指定された資格情報を認証します。結果オブジェクトを返します。結果オブジェクトには、認証の結果が含まれます。認証は成功しました。ユーザー名が見つからなかったために成功しませんでした。不正な文字が使用されたために成功しませんでした。クライアントコードは、これを処理するために条件に頼ることがあります。擬似コードの場合:
AuthResult = Userauthenticator.authenticate(Username, Password)
if AuthResult.isAuthenticated: do something
else if AuthResult.AuthFailedBecauseUsernameNotFound: do something else
else if etc...
ビジターパターンはここに収まりますか?:
Authresult.acceptVisitor(AuthVisitor)
次に、Authresultは、結果に応じてAuthVisitorのメソッドを呼び出します。
AuthVisitor.handleNotAuthenticatedBecauseUsernameNotFound