読者です 読者をやめる 読者になる 読者になる

しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

ファーストクラス・コレクション とは

ファーストクラス・コレクションという設計パターンについて調べてみました。

ファーストクラス・コレクションとは

配列をも全てクラスを作ってラップする手法です。
例として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
設計パターン/ファーストクラスコレクション - ポケットがチケットでいっぱい