しめ鯖日記

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

Swiftで学ぶデザインパターン19 (Bridgeパターン)

今回はBridgeパターンについて書いていきます。

デザインパターンとは

デザインパターンとはソフトウェア開発の設計方法の事です。
オブジェクト指向における再利用のためのデザインパターン』という本が出典で、全部で23種類のパターンが紹介されています。

Bridgeパターンとは

Bridgeパターンとはクラスへの機能の追加のパターンです。
このパターンを使うと継承を使わずに既存クラスへ機能追加ができます。

SwiftでのBridgeパターンの実装方法

Bridgeパターンの実装は下のようになります。
Animalmoveメソッドを持っていますが、その実装はimpという変数に委ねています。
こうする事で、機能の追加を継承を使わずに行う事ができます。

class Animal {
    var imp: MoveImplementation?
    
    func move() {
        imp?.move()
    }
}

class Dog: Animal {}

class Cat: Animal {}

protocol MoveImplementation {
    func move()
}

class RunImplementation: MoveImplementation {
    func move() {
        print("run")
    }
}

class JumpImplementation: MoveImplementation {
    func move() {
        print("jump")
    }
}

let dog = Dog()
dog.imp = RunImplementation()
dog.move()
let cat = Cat()
cat.imp = JumpImplementation()
cat.move()

オブジェクト指向における再利用のためのデザインパターン

オブジェクト指向における再利用のためのデザインパターン