私は最近、コードが階層化された方法でどのように編成されるかについてよく考えています。私は4つの異なる方法を考えてきました:
- インスタンス化 -- 特にオブジェクトはクラスのインスタンスです。ただし、一部の言語 (Python など) では、クラスはメタクラスからインスタンス化されたオブジェクトでもあります。そのため、オブジェクトのインスタンス スタックになる可能性があります。
- 継承 -- スーパークラスのスタックになってしまいます。複数の継承がある場合でも、それをスタックに変換する方法がある可能性があります (Python の MRO のように)。
- 名前空間 -- 通常、スコープも階層化されています。
- コール -- コール スタックは、おそらく最もよく知られており、概念的に最も古いものです。プログラミングの主力です。
インスタンス化は別の種類のコール スタックであり、継承は単なる別の名前空間スタックであると主張することもできますが、いずれにせよ、これらは私が考えたものです。
では、ここに収まる他の概念的なスタックを持っている人はいますか?それとも、呼び出しと名前空間がすべてをまとめているのでしょうか? 他の考えはありますか?