2011-09-17 16 views
0

私はこのような何か(例)を可能とするプログラミング言語を(好ましくは、スクリプトと持つJITがプラスになりますが、これらの二つは必要ありません)、必要があります。プログラミング言語

object 
{ 
    id; 
    new(); 
    destroy(); 
} 

info 
{ 
    descr; 
} 

event inherit object, info 
{ 
    trigger; //has id, descr, trigger 
} 

anon_event inherit event 
{ 
    - decr; //removes descr property, therefore anon_event has id, trigger, but NO descr 
} 

それまた、それができることが、特にいいだろう:

  • 自動生成のIDの作成(新しい())に、
  • は、プライベート、パブリック読み込まれるプロパティ(メンバー)を指定のconst
  • 許可します10パブリックプロパティ(定数のgetter)のための
  • 自動生成ゲッター/セッターは、
  • 、ゲッター/セッターのログ/コールバック機能を持っているが上(selectallprop(DESCR)はDESCRプロパティを持つすべてのインスタンスを選択することになる)プロパティで選択して許可しますタイプselectalltype(event)は、メンバーが同じではなくても、すべてのイベントとanon_eventsを選択します。
  • は、実行時継承、プロパティの追加/削除を許可します。

これは、私が探している言語のタイプを一般的な考えにするには十分だと思います。基本的には、共通の祖先を持たない、複数の継承をベースにした、または別の観点から見たコンポーネント(コンポーネントのメンバーとしてのプロパティのリスト)です。

は何を求めていることは(1)リスコフの置換原則、オブジェクト指向プログラミングの重要な教義に違反する、及び(2)実際に使用することはほとんど不可能だろう、あなたのヒントを

+4

あなたの例は私に何の意味もありません。おそらくあなたは**あなたが望むものを**説明するべきです。 – delnan

+0

anon_eventのインスタンスには、descrメンバーがありません(anon_event foo; foo.descr - > "desc"はエラーになります)、selectallprop(descr)は返されたリストの中でfooを返しません。 – mindless

+0

別の例として、現実からの今回。人類を考えてみましょう:いくつかのプロパティは共通しています:哺乳類、呼吸 - 空気、いくつかのプロパティが共通:2つの腕、2つの脚、頭。後で誰かを人間と呼ぶ必要はありませんが、以前は現在です。人間のすべての特性を列挙することはできません。常に変化するフェノタイプにつながる遺伝子型突然変異のために不可能である。したがって、オブジェクトは人間の一種である必要がありますが、ランタイム(進化)中にプロパティを失う/獲得します。長い進化の間に必要な特性さえ進化するかもしれません。 – mindless

答えて

1

をありがとうクラスから任意のメンバーを削除すると、コンパイルされていないコードや機能しないコードが生成されるため、同じクラスの他のメンバが削除されたメンバに依存することになります。

私が言っていることは、この全体が悪い考えです。

+0

あなたの答えをありがとう。私の考えでは、私のオブジェクトは、特定のクラス/タイプのオブジェクトを表現するのではなく、むしろ便宜のために継承しなければならないコンポーネント(プロパティの所有者)です。実際のOOPのようにその動作が制限されるべきではないと私は考えている。私は、VMはコンポーネントのすべてのプロパティとタイプをトラッキングできると思います。無効なアクセスで例外を生成します。したがって、selectallpropはそのような場合を制限するのに便利です。オブジェクトは、そのようなプロパティ、関数、またはあるクラスの型である場合にのみアクセスされます。 – mindless

関連する問題