このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

JavaScriptと、ある種のツリー構造 (4)だいたいこんな感じ

以下の記事で述べたアイデアはいちおう実現できたかな。まー、習作ですけど。

やってみて感じたこと、反省など: 「JavaScriptと、ある種のツリー構造 (2)」で次のように述べました。

通常のノードとブランクは異なりますが似ています。こういう「異なるが似てる、似てるが異なる」ものを表現するとき、いくつかの方法があります。

  1. 同じクラスの(JavaScriptでは同じコンストラクターを持つ)インスタンスだが、フラグで区別する。
  2. スーパークラスとサブクラスのインスタンスとする。
  3. 同じスーパークラスから継承された2つの異なるサブクラスのインスタンスとする。

フラグを使うと、フラグのチェックが煩雑になりがちです。

確かに、フラグを使うとチェックが面倒なのですが、今回はフラグでも良かったかな、という気もします。オブジェクトを別なクラスとして区別したので、instanceof で条件分岐をしているところがあって、これがどうも具合が悪い。instanceof の右辺にクラス名が生で出てきちゃって、拡張性/保守性の障害になります。new の後に書くクラス名にも同様の問題があります。

上記の問題に幾分かは対処したのですが、中途半端です。クラス分けをしないでフラグ(あるいはタグ)を使う方法ってのも面白そうだし、実用性もあると思うのですが、今回はクラス分けにしちゃったので、次の機会(あれば)にフラグっぽいやり方を試してみます。