今回はFacadeパターンについて書いていきます。
デザインパターンとは
デザインパターンとはソフトウェア開発の設計方法の事です。
『オブジェクト指向における再利用のためのデザインパターン』という本が出典で、全部で23種類のパターンが紹介されています。
Facadeパターンとは
Facadeパターンとは複数クラスにまたがる処理を整理する為のパターンです。
複数クラスにまたがる処理をFacadeクラスに書いて開発者からはFacadeクラスだけを使うようにします。
そうすることで開発者は裏側の複数クラスを意識せずに開発することができます。
SwiftでのFacadeパターンの実装方法
SwiftでのFacadeパターンは下のように実装します。
BookList
とReadList
があり、開発者が読んだ事ある本の一覧を取得したい場合を想定しています。
普通に実装する場合はBookList
とReadList
の中身を突き合わせて一覧を取得する形になります。
今回のケースではその処理をFacade
内に移動する事で開発者はFacade().readBooks()
で簡単に読んだ事ある本の一覧を取得できるようにしています。
class Facade { func readBooks() -> [Book] { return BookList.books.filter() { (book: Book) -> Bool in contains(ReadList.readBookIds, book.id) } } } struct Book { let id: Int! let name: String! } class BookList { static let books = [ Book(id: 1, name: "本1"), Book(id: 2, name: "本2"), Book(id: 3, name: "本3") ] } class ReadList { static let readBookIds = [1, 3] } print(Facade().readBooks().count)
- 作者: エリックガンマ,ラルフジョンソン,リチャードヘルム,ジョンブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田真一,吉田和樹
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 1999/10
- メディア: 単行本
- 購入: 21人 クリック: 711回
- この商品を含むブログ (210件) を見る