今回はCompositeパターンについて書いていきます。
デザインパターンとは
デザインパターンとはソフトウェア開発の設計方法の事です。
『オブジェクト指向における再利用のためのデザインパターン』という本が出典で、全部で23種類のパターンが紹介されています。
Compositeパターンとは
Compositeパターンとは木構造を表すデザインパターンです。
複雑な構造を表す為に利用します。
SwiftでのCompositeパターンの実装方法
下の例は、チームがありチームにメンバーとチームが属せるケースを想定しています。
チームとメンバーがJoinableObject
に準じる事でチーム内にチームを含めたりメンバーを含める事ができています。
protocol JoinableObject { func execute() } class Team: JoinableObject { var array: [JoinableObject] = [] func execute() { for object in array { object.execute() } } } class Member: JoinableObject { let name: String init(_ name: String) { self.name = name } func execute() { print("\(name)です") } } let memberA = Member("A") let memberB = Member("B") let memberC = Member("C") let teamA = Team() teamA.array.append(memberA) teamA.array.append(memberB) teamA.array.append(memberC) let memberD = Member("D") let teamB = Team() teamB.array.append(teamA) teamB.array.append(memberD) teamB.execute()
- 作者: エリックガンマ,ラルフジョンソン,リチャードヘルム,ジョンブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田真一,吉田和樹
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 1999/10
- メディア: 単行本
- 購入: 21人 クリック: 711回
- この商品を含むブログ (210件) を見る