20110425 チキチキゴフッ - adapter

1,130 views

Published on

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

  • Be the first to comment

  • Be the first to like this

20110425 チキチキゴフッ - adapter

  1. 1. Adapter<br />
  2. 2. 識別:do_aki(どぅーあき)<br />分布:Tokyo / Japan<br />生態:インフラ兼Webアプリケーション エンジニア<br />サーバラッキング・ケーブリング<br />ネットワーク / ミドルウェア構築<br />WAF / Library<br />Webアプリ(PHP/Ruby) - 会社が提供するサービス<br />GUIアプリ (C#/C++) – 社内業務アプリ etc...<br />あんた誰?<br />
  3. 3. 継承も、インターフェースも、あるんだよ<br />内部クラスなんてあるわけない<br />こんなの絶対おかしいよ<br />悪名高きPHP使い<br />・プロジェクトの8,9割は ほぼ間違いなく膨大なゴミ山<br />・手続き型と残念なオブジェクト指向が混在<br />Why PHP Was a Ghetto <br />http://codefury.net/2011/04/why-php-was-a-ghetto/<br />
  4. 4. インタフェースの異なるクラスを組み合わせる<br />構造パタンの一種<br />別名 Wrapper<br />利用したい機能を備えたクラス Adapteeを変えずに<br />利用したい振る舞いを持つクラス Target と組合わせる<br />そのための口利きをするクラス Adapter<br />(Adapter を利用する側 Client)<br />Adapter パタン<br />
  5. 5. 電源アダプタ<br />Target: <br />DC 電流<br />Adaptee:<br />電気を供給<br />する機能<br />(ただしAC電流)<br />Client:<br />電気が必要<br />DC電流を供給する機能<br />
  6. 6. むしろ分かりづらかったかも知れない orz<br />
  7. 7. class Adapter implements Target { AdapteedelegateObject; }<br />継承による Adapter<br />委譲による Adapter<br />実装方法<br />class Adapter extendsAdaptee<br />implements Target {}<br />class Adapter extends Target { AdapteedelegateObject; }<br />
  8. 8. プリミティブをオブジェクトとして扱いたいとき<br />プリミティブラッパークラス in Java<br />BLライブラリで他のライブラリの機能を使いたいとき<br />継承構造を維持したいので、委譲を使うケースが多い<br />既存の機能が使いづらいとき<br />C向けのライブラリをラップする<br />どういうときに使う?<br />
  9. 9. 変換コスト<br />かかりすぎるなら別方法を考えた方がよい<br />というかラッパーじゃないよねそれ<br />Adapteeがブラックボックスになる<br />というか、ブラックボックスにするべき<br />気づいたらブラックボックスじゃなくなってたり……<br />注意点<br />
  10. 10. 利用したい機能を持ったクラスの実装を変えることなく、振る舞いを変えることが Adapter パタン<br />古株と新人の間に入って口利きする中間管理職的な、ちょっとかわいそうな娘 by デザインパターンたん<br />まとめ<br />
  11. 11. えんいー<br />java-ja怖いよjava-ja<br />おしまい<br />

×