Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
インターフェイスによる  オブジェクト指向プログラ           ミング            株式会社Aiming        ソフトウェアエンジニア               清水 聡
アジェンダ•   インターフェイスとは•   各言語のインターフェイス•   ゲームにおけるインターフェイス活用•   実務でのバランスの取り方•   オブジェクト指向プログラミングに          おけるインターフェイス
インターフェイスとは
インターフェイスとは• ハードウェアインターフェイス – コネクタの形状やそこを流れるものの取り決   め
インターフェイスとは• ソフトウェアインターフェイス – ソフトウェア間の通信を行う際の    メッセージの渡し方などを決めたもの – 複数のオブジェクトに関して共通する機能を    実装する為のメッセージの規格を定義した   もの
インターフェイスとは描画する人        描画する               形状
インターフェイスとは• 描画する人(Drawer)が最初は   一人で良かったんだけど複数必要に  なった – 例えば、描画対象がiPhone・Android・HTMLと   か• でも描画するという振る舞いと   必要な情報(Figure)は...
インターフェイスとは描画する人というインターフェ      イス                  描画する                 形状
インターフェイスとは• iPhone版の描画する人
インターフェイスとは• Android版の描画する人
各言語のインターフェイス
各言語のインターフェイス• C#
各言語のインターフェイス• Java
各言語のインターフェイス• ActionScript
各言語のインターフェイス• C++
ゲームにおけるインターフェイス活用
ゲームにおけるインターフェイス      活用          敵      倒       落とす  自   す              アイテ              ム
ゲームにおけるインターフェイス      活用  自      近づいて拾うと   アイテ                ム        アイテムを      入手
ゲームにおけるインターフェイス      活用   Money   Item   Exp
ゲームにおけるインターフェイス      活用• インターフェイスを使わない実装1     突然の位置情報
ゲームにおけるインターフェイス      活用• インターフェイスを使わない実装2
ゲームにおけるインターフェイス      活用• インターフェイスを使わない実装3
ゲームにおけるインターフェイス      活用• インターフェイスを使わない実装4
ゲームにおけるインターフェイス      活用         経験値                HP回復      突然の仕様変更  自               お金                アイテ                ム
ゲームにおけるインターフェイス      活用• 対策1
ゲームにおけるインターフェイス      活用• 対策2
ゲームにおけるインターフェイス      活用• 対策3
ゲームにおけるインターフェイス      活用         経験値                HP回復  自               お金                アイテ                ム      落ちているもの
ゲームにおけるインターフェイス      活用
ゲームにおけるインターフェイス      活用
ゲームにおけるインターフェイス      活用
ゲームにおけるインターフェイス      活用
ゲームにおけるインターフェイス      活用
実務でのバランスの取り方
実務でのバランスの取り方• 実務に置いてはいろいろな要因があり   バランスが大切だけど難しいですよね – 時間  • 完璧を求めて時間をかけ過ぎたり – 必要なインターフェイス  • 必要だと思って作ったけど逆に負債となったり – 仕様変更 ...
実務でのバランスの取り方• YAGNI  – “You ain‘t gonna need it”           そんなの必要ないって    • あとで使うだろうとの予測の元に作ったものは、              実際には10%程度しか...
実務でのバランスの取り方• ケース1 – 最初はアイテムしかドロップしなかった    →あとでお金とかが追加された 1. DropItemとして実装する 2. 仕様変更で必要になれば      インターフェイスを考え適用する
実務でのバランスの取り方• ケース2 – 最初からアイテム・お金・経験値がドロップ   する 1. 共通するインターフェイスを考え適用する 2. さらに追加があれば     インターフェイスを実装したクラスを追    加する
オブジェクト指向プログラミングにおけるインターフェイス
OOPにおけるインターフェイス• ここまでは言語の機能である   インターフェイスに焦点をあて説明し  ました• この考え自体はプログラミング自体、   オブジェクト指向プログラミング  (OOP)の    考えで言語問わず適用できます• この...
OOPにおけるインターフェイス• C++での別解
OOPにおけるインターフェイス• Pythonでの一例
OOPにおけるインターフェイス• このように言語にインターフェイスとい  う   機能がないからと言ってインターフェ  イスの    考えが使えないというわけではあり  ません• 言語毎に思想が異なり実現方法が違いま  す• 基盤となるオブジェ...
参考書籍• デザインパターンとともに学ぶ      オブジェクト指向のこころ – http://amzn.to/Z8dE6z• パターン指向リファクタリング入門 – http://amzn.to/UlhkuB• オブジェクト指向における   再...
質疑応答
ご清聴ありがとうございましたm(_ _)m
Upcoming SlideShare
Loading in …5
×
Upcoming SlideShare
MMOを作る
Next
Download to read offline and view in fullscreen.

8

Share

Download to read offline

インターフェイスによるオブジェクト指向設計

Download to read offline

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

インターフェイスによるオブジェクト指向設計

  1. 1. インターフェイスによる オブジェクト指向プログラ ミング 株式会社Aiming ソフトウェアエンジニア 清水 聡
  2. 2. アジェンダ• インターフェイスとは• 各言語のインターフェイス• ゲームにおけるインターフェイス活用• 実務でのバランスの取り方• オブジェクト指向プログラミングに おけるインターフェイス
  3. 3. インターフェイスとは
  4. 4. インターフェイスとは• ハードウェアインターフェイス – コネクタの形状やそこを流れるものの取り決 め
  5. 5. インターフェイスとは• ソフトウェアインターフェイス – ソフトウェア間の通信を行う際の メッセージの渡し方などを決めたもの – 複数のオブジェクトに関して共通する機能を 実装する為のメッセージの規格を定義した もの
  6. 6. インターフェイスとは描画する人 描画する 形状
  7. 7. インターフェイスとは• 描画する人(Drawer)が最初は 一人で良かったんだけど複数必要に なった – 例えば、描画対象がiPhone・Android・HTMLと か• でも描画するという振る舞いと 必要な情報(Figure)は変わらない
  8. 8. インターフェイスとは描画する人というインターフェ イス 描画する 形状
  9. 9. インターフェイスとは• iPhone版の描画する人
  10. 10. インターフェイスとは• Android版の描画する人
  11. 11. 各言語のインターフェイス
  12. 12. 各言語のインターフェイス• C#
  13. 13. 各言語のインターフェイス• Java
  14. 14. 各言語のインターフェイス• ActionScript
  15. 15. 各言語のインターフェイス• C++
  16. 16. ゲームにおけるインターフェイス活用
  17. 17. ゲームにおけるインターフェイス 活用 敵 倒 落とす 自 す アイテ ム
  18. 18. ゲームにおけるインターフェイス 活用 自 近づいて拾うと アイテ ム アイテムを 入手
  19. 19. ゲームにおけるインターフェイス 活用 Money Item Exp
  20. 20. ゲームにおけるインターフェイス 活用• インターフェイスを使わない実装1 突然の位置情報
  21. 21. ゲームにおけるインターフェイス 活用• インターフェイスを使わない実装2
  22. 22. ゲームにおけるインターフェイス 活用• インターフェイスを使わない実装3
  23. 23. ゲームにおけるインターフェイス 活用• インターフェイスを使わない実装4
  24. 24. ゲームにおけるインターフェイス 活用 経験値 HP回復 突然の仕様変更 自 お金 アイテ ム
  25. 25. ゲームにおけるインターフェイス 活用• 対策1
  26. 26. ゲームにおけるインターフェイス 活用• 対策2
  27. 27. ゲームにおけるインターフェイス 活用• 対策3
  28. 28. ゲームにおけるインターフェイス 活用 経験値 HP回復 自 お金 アイテ ム 落ちているもの
  29. 29. ゲームにおけるインターフェイス 活用
  30. 30. ゲームにおけるインターフェイス 活用
  31. 31. ゲームにおけるインターフェイス 活用
  32. 32. ゲームにおけるインターフェイス 活用
  33. 33. ゲームにおけるインターフェイス 活用
  34. 34. 実務でのバランスの取り方
  35. 35. 実務でのバランスの取り方• 実務に置いてはいろいろな要因があり バランスが大切だけど難しいですよね – 時間 • 完璧を求めて時間をかけ過ぎたり – 必要なインターフェイス • 必要だと思って作ったけど逆に負債となったり – 仕様変更 • もう全てがどんでん返し\(^o^)/
  36. 36. 実務でのバランスの取り方• YAGNI – “You ain‘t gonna need it” そんなの必要ないって • あとで使うだろうとの予測の元に作ったものは、 実際には10%程度しか使われな い • 不要な機能にも維持コストがあり、リソースを浪 費する • 設計をシンプルにすることが 予期しない変更に対しての備えとなる
  37. 37. 実務でのバランスの取り方• ケース1 – 最初はアイテムしかドロップしなかった →あとでお金とかが追加された 1. DropItemとして実装する 2. 仕様変更で必要になれば インターフェイスを考え適用する
  38. 38. 実務でのバランスの取り方• ケース2 – 最初からアイテム・お金・経験値がドロップ する 1. 共通するインターフェイスを考え適用する 2. さらに追加があれば インターフェイスを実装したクラスを追 加する
  39. 39. オブジェクト指向プログラミングにおけるインターフェイス
  40. 40. OOPにおけるインターフェイス• ここまでは言語の機能である インターフェイスに焦点をあて説明し ました• この考え自体はプログラミング自体、 オブジェクト指向プログラミング (OOP)の 考えで言語問わず適用できます• この考えを支援する為に 言語毎に機能があったりなかったりし ます
  41. 41. OOPにおけるインターフェイス• C++での別解
  42. 42. OOPにおけるインターフェイス• Pythonでの一例
  43. 43. OOPにおけるインターフェイス• このように言語にインターフェイスとい う 機能がないからと言ってインターフェ イスの 考えが使えないというわけではあり ません• 言語毎に思想が異なり実現方法が違いま す• 基盤となるオブジェクト指向プログラミ ングを
  44. 44. 参考書籍• デザインパターンとともに学ぶ オブジェクト指向のこころ – http://amzn.to/Z8dE6z• パターン指向リファクタリング入門 – http://amzn.to/UlhkuB• オブジェクト指向における 再利用のためのデザインパターン – http://amzn.to/VI3524
  45. 45. 質疑応答
  46. 46. ご清聴ありがとうございましたm(_ _)m
  • taroyamakawa18

    Aug. 15, 2017
  • stylethewalker

    Apr. 7, 2015
  • daikikawashima35

    Apr. 2, 2015
  • seinco0904

    Nov. 16, 2014
  • takeshiimai31

    Dec. 22, 2013
  • ssusere19001

    Dec. 18, 2012
  • EnNagahara

    Dec. 18, 2012
  • shiwano

    Dec. 17, 2012

Views

Total views

7,060

On Slideshare

0

From embeds

0

Number of embeds

67

Actions

Downloads

24

Shares

0

Comments

0

Likes

8

×