Home > papervision3d > Papervision3Dの奇妙なコーディングスタイル - addChild -

Papervision3Dの奇妙なコーディングスタイル - addChild -

Papervision3Dに関連するサイトを巡っているとよく出会うコーディングスタイルがあります。
これです。

rootNode = scene.addChild(new DisplayObject3D("rootNode"));

addChildというメソッドが何故かノードを返します。
ノードを追加してbooleanを返すなら分かるのですが…。

他のプログラム、もしくは普通のActionScriptでプログラミングしている人には少し奇妙に感じるのではないでしょうか?
ということで、この奇妙なコーディングスタイルについて調べてみました。

scene(: Scene3D)のaddChildの実装箇所は「org.papervision3d.core.proto.DisplayObjectContainer3D.as」の大体117行目です。

要所だけ抜粋します。

public function addChild(child:DisplayObject3D,name:String=null):DisplayObject3D
{
// ・・・
  this._childrenByName[ name ] = child;
// ・・・
  return child;
}

なるほど!
引数に渡されたノードをハッシュで管理して、そのノードをそのままreturnしているのですね。
これで納得しました。

このコーディングスタイルのメリットは、

rootNode = new DisplayObject3D("rootNode");
scene.addChild(rootNode);

という、直感的な2行のコーディングが

rootNode = scene.addChild(new DisplayObject3D("rootNode"));

という、1行で済むところです。
Papervision3Dは様々なオブジェクトをaddChildしていくので、これは便利そうです。

しかし、このブログでは前者のコーディングスタイルにします。
なぜなら、ブログにソースを載せる時、一行が長いと読みにくいからです。
さらに、やはり直感的で無いからです。

実用プログラミングでは後者の方が効率的でスマートなので良いとは思います。

関連のありそうなエントリ

Comments:0

Comment Form
Remember personal info

*
To prove that you're not a bot, enter this code
Anti-Spam Image

Trackbacks:0

Trackback URL for this entry
http://www.adamrocker.com/blog/138/papervision3d_coding_style_with_addchild.html/trackback/
Listed below are links to weblogs that reference
Papervision3Dの奇妙なコーディングスタイル - addChild - from throw Life

Home > papervision3d > Papervision3Dの奇妙なコーディングスタイル - addChild -

Search
Feeds
Meta

Return to page top