Swiftにおける**プロトコル継承(Protocol Inheritance)**は、1つのプロトコルが他のプロトコルを継承し、それらの要件を引き継ぐ機能です。これは、クラスの継承とは異なり、**複数のプロトコルからの継承が可能(多重継承)**であり、柔軟なインターフェース設計を可能にします。
基本構文
この場合、protocol C を採用する型は、A・B・C すべてのメソッドを実装する必要があります。
実装例
このようにして、共通の振る舞いを段階的に再利用・拡張することができます。
利点
-
コードの再利用性向上
小さなプロトコルを定義し、それらを組み合わせることで柔軟な設計が可能になります。 -
モジュール化・責務分離
各プロトコルが単一の責務を持ち、それらを組み合わせることで拡張性が高くなります。 -
多重継承が可能
Swiftのクラスとは異なり、複数のプロトコルを同時に継承できます。
実用的な例(UIKit)
UIKitにおいても、以下のようにプロトコル継承が利用されています。
UITableViewDataSource は、NSObjectProtocol を継承しており、クラスベースで使うことが想定されています。
注意点
-
継承元プロトコルの変更は継承先にも影響を与えるため、慎重に設計する必要があります。
-
型に準拠させる際は、継承されたすべての要件を満たす必要があります。
Swiftのプロトコル継承は、機能の分離と再利用を促進し、より保守性の高いコードを実現するための重要な設計手法です。
生成日:2025/05/04