■エクステンション(extension)とは
「拡張機能は、既存のクラス、構造体、列挙型、またはプロトコルタイプに新しい機能を追加します。」
引用:The Swift Programming Language (Swift 4.1): Extensions
■メリット
同じプロパティやメソッドを繰り返し記述することを避けることができるため、可読性が上がることがメリットです。
※具体例に関しては以下記事で取り上げられています。
「例えば、Viewの背景をピンク色にしたいとします。ただ、他のViewでもピンク色を使う場合、汎用的にピンク色を定義しておきたいと考えます。そこでextensionを利用します。」
引用:【swift】extension(拡張)を上手に活用しよう | 笑顔はじめました
■継承とエクステンションの違い
継承は親クラスからメソッドとプロパティを引き継ぐのに対して、extensionは単純に既存クラスへの機能を追加します。
■とりあえず書いてみる
ViewControllerにエクステンションを使って新しい色を追加するコードを書いてみました。
このコード量では実感しにくいかもしれませんが、何色も新しい色を追加する場合、エクステンションを使わずに直接ViewControllerに記述すると単純にスコープが大きくなって読みにくくなってしまいます。また、新しい色を使い回すこともできないので、各メソッドに同様のコードを記述することとなりやはり読みにくくなります。
そのため、エクステンションを使って新しい色に関する記述をまとめておくことは可読性を高めることにつながります。
■参考記事
・The Swift Programming Language (Swift 4.1): Extensions
・【Swift】継承とエクステンションについて説明するよ | Fussan Blog
・プロトコルを実装する時はextensionを使おう - Qiita
・SwiftのExtensionによるクラス分割 - Qiita