[解決済み] エンティティのコレクションにおけるIListとIEnumerableの比較
2022-05-04 17:46:36
質問
ドメイン内にリストを持つエンティティがある場合、それらはIListsまたはIEnumerablesとして公開されるべきでしょうか?例:OrderにはOrderLinesの束がある。
どのように解決するのですか?
IEnumerable<T>
は、(foreachなどを使って)反復処理できる一連の項目を表しますが、一方
IList<T>
は、追加や削除が可能なコレクションです。
一般的には、OrderLines を追加したり削除したりして Order を変更できるようにしたいので、Order.Lines は
IList<OrderLine>
.
とはいえ、フレームワークの設計上、決めておくべきこともあります。例えば、同じOrderLineのインスタンスを2つの異なるオーダーに追加することが可能であるべきでしょうか?おそらく、そうではないでしょう。そこで、OrderLineがオーダーに追加されるべきかどうかを検証できるようにしたいと考えると、確かにLinesプロパティを単なる
IEnumerable<OrderLine>
そして、その検証を処理できる Add(OrderLine) と Remove(OrderLine) メソッドを提供します。
関連
-
[解決済み] vbscriptでコレクションオブジェクトを作成する方法は?
-
[解決済み] IEnumerable<T> と IQueryable<T> を比較する。
-
[解決済み] IEnumerable<T>のforeachのLINQでの等価性
-
[解決済み] IEnumerable<T> / IQueryable<T>の動的なLINQ OrderBy
-
[解決済み] IEnumerable<T> として単一の項目を渡す
-
[解決済み] 空のIEnumerableを返すにはどうしたらいいですか?
-
[解決済み】IEnumerable<T>コレクションにアイテムを追加するにはどうすればよいですか?
-
[解決済み】KotlinのListに "add"、"remove "がない、Mapに "put "がないなど?
-
[解決済み】Javaで最後のN個の要素を保持するサイズ制限のある待ち行列
-
[解決済み】IEnumerable vs List - What to Use? どのように動作するのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン