これは一般的なJavaの質問と見なすことができますが、理解を深めるために、例としてLuceneを使用しています。
Luceneでさまざまなトークナイザーを使用して、テキストをトークン化できます。メインの抽象Tokenizerクラスと、それを拡張するさまざまなクラスがあります。TokenFilterについても同じです。
これで、ドキュメントのインデックスを作成するたびに、新しいTokenizerが作成されるようです。問題は、Tokeinzerは単なるユーティリティクラスなので、静的にしてみませんか?たとえば、すべての文字を小文字に変換するTokenizerは、取得するすべての入力に対してそれを実行する静的メソッドを持つことができます。インデックスを作成するすべてのテキストに対して新しいオブジェクトを作成することのポイントは何ですか?
言及すべきことの1つ-Tokeinzerには、トークン化するために受け取る入力を含むプライベートフィールドがあります。トークン化プロセスが終了した直後にオブジェクトが破棄され、新しいトークン化されたテキストが返されるため、この方法で保存する必要がある理由がわかりません。私が考えることができる唯一のことは、多分マルチスレッドアクセスですか?
ありがとうございました!