例でやってみましょう。従業員を取得する機能を持つ Company エンティティを考えてみましょう - getEmployees()
。会社には多くの従業員がいる場合があるため、会社に負荷がかかると従業員は負荷されません。ただし、従業員が読み込まれると、それらはキャッシュに保存され、次の呼び出し時にすぐに取得されます。
ここで、従業員のリストをリスト ビュー (GUI) で表示したいと思います。
従業員がインターネットからロードされている間、「ロード中」の表示を提供したいと思います。
しかし、キャッシュから (非常に高速に) ロードされると、'ロード中' インジケータを表示してすぐに削除するのは面倒です。したがって、すでにロードされている場合は、「ロード中」インジケータをまったく表示したくありません。
この設計上の問題にどのように取り組みますか? メソッドを追加しますgetCachedEmployees()
か?おそらくisEmployeesCached()
?おそらくメソッドをに変更しgetEmployees(boolean cache)
ますか?
キャッシュをカプセル化する代わりに、キャッシュが強調され、ソフトウェアが複雑になるため、上記のいずれも好きではありません。
他のアイデアはありますか?