開発
Adapterパターン
makuta
こんばんは。幕田です。
今回は2つ目のデザインパターン、Adapterパターンについてです。
いきなりですが、
例えば、直流12Vで動くノートパソコンを交流100VのAC電源につなげようとしたときどうしますか?
ACアダプターを使いますよね!?
ACアダプターは家庭用の電源として提供されている「交流100V」を、必要な「直流12V」に変換してくれます。提供されているものと、必要なものとの間に入って、その間を埋めてくれるのがアダプターの役割です。
この時と同じように、プログラムでも「すでに提供されているもの」と「必要なもの」の間のずれを埋めてくれるもの、2つの異なるインターフェースの橋渡しをしてくれるデザインパターンが、Adapterパターンです。
Adapterパターンには2つの種類あります。
* クラスによるAdapterパターン(継承を使ったもの)
* インスタンスによるAdapterパターン(委譲を使ったもの)
なぜAdapterパターンを使うのかというと、、、
いつもゼロからプログラミングをするとは限りません。既に存在しているクラスを利用することもよくあります。特にそのクラスが十分にテストされ、バグが少なく、また、以前からそれを利用してきていたのなら、なおさら、そのクラスを部品として再利用したいですよね?
Adapterパターンは、既存のクラス(再利用するもの)に一皮かぶせて必要とするクラスを作ります。これにより既存のクラスにはバグが少ないことがわかっているので、デバッグがとても楽になります。
ということで、インターフェース(API)が異なっている2つの間に入ってそれのずれを埋める、Adapterパターンについてでした。