Help us understand the problem. What is going on with this article?

マンガでわかる Prototype

D222A724-481E-4E59-90DA-5D7B03F94C9C.png
めもりーちゃんはちょうぜつソルジャー DNA を持っているので闇の組織のクローンソルジャーのプロトタイプに選ばれてしまったのです。がんばれオブジェクト指向警察!

闇の組織が最強の部隊を作るときはだいたい、ソルジャー適性を持つとわかっている DNA をコピーする (なぜか後天的に獲得した能力も付いてくる) のが王道ですね。遺伝子操作をインスタンスごとにいちいち new からやるのは、手間と時間がかかりすぎるし、個体差が出てしまうリスクもあります。すでにいい感じに出来上がってる塩基配列からクローンを量産するのが悪の科学の基本です。

同じ特性のオブジェクトをたくさん作って、使用後 (いったいどんな薬物を!?) の状態変化はやりっぱなし放置、どうせ使わなくなったら最後は使い捨てて GC されるんだから、というようなシチュエーションで、このパターンはすごく活躍できます。 (いけない、だんだん人道的に欝入ってきました)

現実には、大量投げっぱなしといえば、たとえばシューティングゲームの弾丸です。テスト用の事前条件環境も、いい感じに構築済みのものをプロトタイプとしたクローンにしておければ、前のテストのものを使い捨てて、副作用の影響なしに次のテストに臨めます。

あ、そういえば、活躍するクローンは必ずミュータブルで、互いに異なるインスタンスだという点、地味に効いてくるポイントです。

だってもしオブジェクトがイミュータブルなら、クローンなんてする必要なくて、定数としてオブジェクトを共有すればいいでしょ。まったく同じものでメモリを埋めるなんてもったいない。

でも、いくらメモリがもったいないからって、ミュータブルなオブジェクトを共有するのはもっとダメですね。ひとつのインスタンスが剣も盾も装備して、ちょんまげまで乗っちゃう。ちょんまげは失敗だから破棄したくてもできないし、そんな影分身がみんな同じ動きをするなんて...

ええと、何が言いたいかというと、共有してるから状態が変わっちゃダメな JavaScript の prototype は、デザインパターンでいう Prototype とはまったく関係がない、というかむしろ、真逆の特徴を持っているのでくれぐれも混同しないでくださいね、ということです。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away