檜山正幸のキマイラ飼育記がとても詳しいです。合わせて読むとかなりしっかりと理解出来ると思います。変な書籍を買うよりこちらがオススメです。はじめに(いいわけ)ホットエントリに行くとは思っておらず、皆様ありがとうございます。「ドラゴンボールをオブジェクト指向にする」というコンセプトではなく、「オブジェクト指向を(無理矢理)ドラゴンボールで説明する」という遊びだったのでプログラマーの方々にはツッコミを受けてしまいましたがここは遊びだと思って楽しんで下さい...。ドラゴンボールは小さい頃から大好きでしたが流石にうるおぼえ過ぎました。専門家の方々からも厳しいツッコミを受けました。それはさておき「説明する題材を決める→好きな漫画から無理矢理当てはまりそうな例を考える」という思考実験なので、気が向いた方は色々考えてみると楽しいと思います。・ジョジョの奇妙な冒険で学ぶオブジェクト指向スタンドとか波紋法とか色々面白そうです。・ジャニーズで学ぶオブジェクト指向これは難易度が高そうです。継承=誘い受け、移譲=ヘタレ攻めだと思います。ドラゴンボールで学ぶデザインパターンデザインパターンとはドクターゲロが考えた「こうやって設計すれば色々捗るぞ」という例のことです。実際はGoFという人たちが考えたもので23個のよくあるパターンに名前を付けて整理してくれたわけですね。23個の中にはブルマさんですらわからないものが多いので(さすがドクターゲロですね)良く使う、代表的な物をいくつか紹介しますSingletonパターンSingletonは世界に一つだけしか存在出来ないようにする方法です。//これでは誰でもドラゴンボールを作れてしまう!balls.callShenron();クラスの中にはいくつかのメソッドがありますが、簡単に言うと外から呼べるもの、外からでは呼べないものの二種類があります。やってメソッドを保護することで世界の崩壊を防ぐわけですね。基本的な戦闘力をアップさせるには本人の努力が必要になり、外から簡単に挙げられてしまうとジャンプの三本柱が外れてしまいます。(某漫画などは努力しなくともあがったりしますが)ただナメック星の最長老や界王神などはかなり偉いので、本人の才能を引き出すことが可能でした。現実には思いつきのような仕様を後から言われることが多々あります。//ドラゴンボールを作れないように生成メソッドを保護します。singleton_dragonball;//ドラゴンボールを生成。DragonBalls()」を呼べます。singleton_dragonball;}}これで界王神から怒られることもありませんね。プログラマーは神なのでドラゴンボールを作れます。Proxyパターン何かの処理を行うためにProxy、代理人を立てる設計です。地球のみんなは地球語しか話せませんが、ナメック星にいるクリリンを通して願いを叶える必要があります。クリリンももちろん地球語しか話せませんが、ナメック語を話せるデンデがいるため、地球のみんなは願いを叶えることが出来ます。}}kuririn.request("ピッコロを生き返らせてくれ","ピッコロをナメック星へとワープさせてくれ","ナメック星にいる孫悟空とフリーザ以外を全員地球へとワープさせる");この場合のメリットはデンデが何をやっているかクリリンをプログラミングした人が知る必要が無いということです。デを通して願いと伝える実装だけ行えば大丈夫です。地球の人はナメック星にいるナメック星人が「デンデ」であることを知る必要もありません。それでも願いは叶うんです。本来であればデンデやクリリンは願いが叶うのを待つ必要がありましたが、地球の人は一気に伝えることが可能なように設計しました。それでないと不便ですからね。ナメック星人は英語でNamekianらしいです。*****//ナメック語に翻訳します。ナメック星に行く方法を考えた時いくつかの方法がありました。古い宇宙船を探してきて直して載せて...っていちいち書くより同じメソッドでナメック星に行けたほうが便利ですね。);//船を修理しますship.load(people);//人を載せますthis.launchSpaceShip(ship);//船を出発します。}}ナメック星に行く方法を定義したので「ブルマ、クリリン、悟飯」組と「悟空」をそれぞれナメック星に連れて行きましょう。);と簡単に方位SU83、距離9045YXまで乗員を連れて行くことが出来ます。二つの方法を実装します。神様の船を修理して行く方法と、サイヤ人の船(悟空が乗ってきた船)で行く方法の二つです。//神様の船で行きます。