亀仙流やつ鶴仙流など、世の中にはいくつかの流派(=クラス)があり、それぞれの流派にかめはめ波やどどん波、舞空術などの技(メソッド)がいくつかあります。
実際に流派にある技を使う場合、技を覚えているZ戦士(インスタンス)が必要になります。
例)亀仙流を覚えた孫悟空を使ってかめはめ波を放って敵を倒す goku = new KamesenRyu("goku"); goku.shootKamehameha(teki);
Z戦士によっては複数の流派の技が使えたり、自分の技を人に教えることが出来ます(継承)。
また悟空とクリリンのように同じ流派でも同じ技で違う性能を持っていたり、オリジナルの技を持っているなどの違いがあります。
クラスはセルを作るためのZ戦士達の遺伝子情報と言っても良いかもしれません。
例)セルを作りましょう。 class Cell extends Goku,Veget,Picoro,Tenshinhan,Kuririn{ .... } cell_inst = new Cell(); cell_inst.shootKienzan(); //Kuririnをextendsしているので気円斬が使えます。
世界(プログラミング言語)によってはただの人を後付でZ戦士にすることが可能です。
(JavaScriptやRubyなど)
noumin = new Hito(); noumin.kougekiKuwa = function(){ //戦闘力たったの5…ゴミめ! }; noumin.shootKamehameha = function(){ //な、なんだと!? };
農民がいきなりかめはめ波をうつようになったら危険ですね、危ないです。
このように後付でメソッドを追加出来るタイプは危険性を含んでいます。
とても良いつっこみが来たので追記します。
前半部分ではZ戦士をインスタンスとしましたが、セルを作るにはZ戦士がインスタンスでは出来ないので
何をインスタンスにして、何をクラスにするかが「設計」なんですね。
セルの第一段階ではGokuなどのZ戦士の遺伝子があれば作ることが出来ました。
cell_inst = new Cell(); //このセルは第一段階
cell_inst.absorb(17gou); //第二段階に変身 cell_inst.call18gou(); cell_inst.absorb(18gou); //最終段階に変身 class Cell ....{ function call18gou(){ if(!this.17gou)return error(); //17号を吸収していないと失敗する this.17gou.speak("****略*****ドクターゲロ様****略****"); } }
17gouを吸収したので、17号の声で18号を呼ぶことが出来るようになりました。
でもドクターゲロ「様」って言ったのでセルだってバレバレですね。
http://anond.hatelabo.jp/20110316224648
クロージャについてちゃんと書こうと思って挫折。どなたか良いアイディアを下さい。
実際に技を使う場合、技を覚えているZ戦士(インスタンス)が必要。 Z戦士によっては複数の流派の技が使えたり、自分の技を人に教えることが出来る(継承) インスタンスなのかク...
亀仙流やつ鶴仙流など、世の中にはいくつかの流派があり、それぞれカメハメ波やドドン波、舞空術などの技(メソッド)がある。実際に技を使う場合、技を覚えているZ戦士(インスタ...
http://anond.hatelabo.jp/20110316202255 デザインパターン編を書いてたら99ブクマだと…。なんだかすみません。 あと増田で書くの初めてで記法がちとわかっていなくて見づらくて申し訳ないです...
http://anond.hatelabo.jp/20110316202255 http://anond.hatelabo.jp/20110316224648 noumin = new Hito(); noumin.kougekiKuwa = new function(){ //戦闘力たったの5…ゴミめ! }; noumin.shotKamehameha = new function(){ //な、なんだ...
http://anond.hatelabo.jp/20110316202255 - ドラゴンボールで学ぶオブジェクト指向