クラスの機能のリストを保持するクラスがあります。これらの機能は、読み取りと比較してめったに変更されません。読み取りは、ほとんどの場合、機能リストの反復です。このため、私はCopyOnWriteArrayList
.
私はこのような機能が欲しい:
function Feature[] getFeatures() {
.. implementation goes here ..
}
認めますが、その理由は少し怠惰かもしれません。次のようなコードを書きたいと思います。
for (Feature f: object.getFeatures()) {
.. do something interesting ..
}
これではなく:
Iterator<Feature> iter = object.getFeatureIterator();
while (iter.hasNext()) {
Feature f = iter.next();
.. do something interesting ..
}
主な質問は - 私はここで怠惰ですか?私はこのパターンに多く従うつもりであり、コードの最初のチャンクは保守がはるかに簡単だと思います。明らかに、基になる配列を変更することは決してなく、これをドキュメントに記載します。
この状況を処理する適切な方法は何ですか?