ファーストクラス・コレクションという設計パターンについて調べてみました。
ファーストクラス・コレクションとは
配列をも全てクラスを作ってラップする手法です。
例としてProductsの配列を直接変数にせずに、ProductListというクラスを通して変数化する事があります。
class Product {} class ProductList { var products = [Product]() } let productList = ProductList()
ファーストクラス・コレクションのメリット
メリットとして、配列に対する処理(全てのProductのPriceを合計するなど)をメソッド化できる事です。
class Product { var price = 0 } class ProductList { var products = [Product]() func totalPrice() -> Int { return products.reduce(0) { $0 + $1.price } } }
参考URL
ルール8:ファーストクラスコレクション - Strategic Choice
設計パターン/ファーストクラスコレクション - ポケットがチケットでいっぱい