11
Adapter

20110425 チキチキゴフッ - adapter

  • Upload
    doaki

  • View
    919

  • Download
    0

Embed Size (px)

DESCRIPTION

第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』Adapter パタン

Citation preview

Page 1: 20110425 チキチキゴフッ - adapter

Adapter

Page 2: 20110425 チキチキゴフッ - adapter

識別: do_aki ( どぅーあき ) 分布: Tokyo / Japan 生態:インフラ兼 Web アプリケーション エンジ

ニア サーバラッキング・ケーブリング ネットワーク / ミドルウェア構築 WAF / Library Web アプリ (PHP/Ruby) - 会社が提供するサービス GUI アプリ (C#/C++) – 社内業務アプリ etc...

あんた誰 ?

Page 3: 20110425 チキチキゴフッ - adapter

継承も、インターフェースも、あるんだよ 内部クラスなんてあるわけない こんなの絶対おかしいよ

悪名高き PHP 使い

・プロジェクトの 8,9 割は ほぼ間違いなく膨大なゴミ山・手続き型と残念なオブジェクト指向が混在

Why PHP Was a Ghetto http://codefury.net/2011/04/why-php-was-a-ghetto/

Page 4: 20110425 チキチキゴフッ - adapter

インタフェースの異なるクラスを組み合わせる 構造パタンの一種 別名 Wrapper

利用したい機能を備えたクラス Adaptee を変えずに 利用したい振る舞いを持つクラス Target と組合わせ

る そのための口利きをするクラス Adapter ( Adapter を利用する側 Client )

Adapter パタン

Page 5: 20110425 チキチキゴフッ - adapter

電源アダプタ

Client:電気が必要

Adaptee:電気を供給する機能( ただし AC 電流 )

DC 電流を供給する機能

Target: DC 電流

Page 6: 20110425 チキチキゴフッ - adapter

むしろ分かりづらかったかも知れない orz

Page 7: 20110425 チキチキゴフッ - adapter

class Adapter implements Target { Adaptee delegateObject; }

継承による Adapter

委譲による Adapter

実装方法

class Adapter extends Adaptee implements Target {}

class Adapter extends Target { Adaptee delegateObject; }

Page 8: 20110425 チキチキゴフッ - adapter

プリミティブをオブジェクトとして扱いたいとき プリミティブラッパークラス in Java

BL ライブラリで他のライブラリの機能を使いたいとき 継承構造を維持したいので、委譲を使うケースが多

い 既存の機能が使いづらいとき

C 向けのライブラリをラップする

どういうときに使う ?

Page 9: 20110425 チキチキゴフッ - adapter

変換コスト かかりすぎるなら別方法を考えた方がよい というかラッパーじゃないよねそれ

Adaptee がブラックボックスになる というか、ブラックボックスにするべき 気づいたらブラックボックスじゃなくなってたり…

注意点

Page 10: 20110425 チキチキゴフッ - adapter

利用したい機能を持ったクラスの実装を変えることなく、振る舞いを変えることが Adapter パタン

古株と新人の間に入って口利きする中間管理職的な、ちょっとかわいそうな娘  by デザインパターンたん

まとめ

Page 11: 20110425 チキチキゴフッ - adapter

えんいー

java-ja 怖いよ java-ja

おしまい