状態の保持
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/03 01:18 UTC 版)
関数オブジェクトの利点の一つは、関数の呼び出しをまたいで状態を(オブジェクトのフィールドとして)保持できる点である。たとえば、下記のコードは10以上の数を数えるジェネレータ(引数をとらない関数)を定義し、11 回呼び出し結果を出力している。 #include
※この「状態の保持」の解説は、「関数オブジェクト」の解説の一部です。
「状態の保持」を含む「関数オブジェクト」の記事については、「関数オブジェクト」の概要を参照ください。
状態の保持
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/05/16 22:12 UTC 版)
「Visitor パターン」の記事における「状態の保持」の解説
Visitor パターンは関心の分離をより進展させる可能性があるが、加えて単純に多態的なメソッドを呼び出す以上の利点として、Visitor パターンでは状態を持つことができる。これは、オブジェクトに対して実行されるアクションが以前のアクションに依存するような多くのケースで極めて有用である。 この例は、pretty-printer のプログラミング言語 による実装(コンパイラやインタプリタによる)である。pretty-printer オブジェクト (本例では Visitor として実装されている)は、パースされ、処理されたデータ構造内のノードを巡回する。pretty-printer は次に、プログラムツリーのテキストによる表現を生成する。出力を人間が可読なものにするために、pretty-printer はプログラムの文や表現を適切にインデントしなければならない。「現在のインデント幅」が visitor により状態の一つとして追跡され、単純な多態的な関数の呼び出しとして、カプセル化が正しく行われ、インデント幅はパラメータとして公開され、呼び出し者はこのパラメータを正しく使用するためのメソッドの実装を信頼する。
※この「状態の保持」の解説は、「Visitor パターン」の解説の一部です。
「状態の保持」を含む「Visitor パターン」の記事については、「Visitor パターン」の概要を参照ください。
- 状態の保持のページへのリンク