メタラスとは何ですか?
メタクラスは、オブジェクト指向プログラミング(OOP)で使用され、通常、クラスのクラスと考えられています。ほとんどのメタ情報と同様に、Metaclassはプログラムの背後に動作し、ユーザーには見られません。 Metaclassはクラスからの情報を変更することができ、コーディング構造に応じて、1つまたは多くのクラスにリンクできます。すべてのOOP構造にメタオブジェクトコーディングが含まれているわけではなく、一部のメタオブジェクトコーディングは高度な形式でのみ提供される場合があります。
ほぼすべてのタイプのコーディングでは、メタコーディングはプログラムで機能するタグまたはコードの行ですが、ユーザーにはあからさまに見られません。メタ情報はコードを超えており、プログラムに直接干渉することなく、情報を変更したり、プログラムに追加することができます。 OOPでは、メタクラスを使用してクラスを取得し、その動作を変更します。
OOPのクラスは、1つの傘の用語の下に配置された一連のインスタンスまたはオブジェクトです。たとえば、プログラマーは「House」というクラスを作成できます。この下で、プログラマはOBを作成します部屋、家具、人々など、家によく見られる側面を変更または再現するジェクト。クラスはこれらのオブジェクトを変更できますが、メタクラスはクラス自体の変更に取り組みます。
OOPのクラスは通常動的であり、プログラムが終了する前に多くの変更を受ける可能性があります。メタクラスは、プログラマーがメタ情報が正しく機能していないことがわかっていない限り、めったに変更されない静的な情報です。これにより、メタクラスが誤って揮発性データを使用することができなくなり、動作修飾子を操作できないことも保証します。
プログラマーの必要性に応じて、メタクラスは単一のクラスまたは多くのクラスに一度にリンクされます。プログラマーはほとんどの場合、メタラスを1つのクラスに接続し、一意のルールまたは動作をメタオブジェクトコーディングに追加します。すべて同じ動作の変更を受けることができるいくつかのクラスがある場合、メタ情報は、いくつかの異なるクラスに適用されます。これは、メタオブジェクトのコーディングのタイトルが付いており、必要に応じて簡単に呼び出すことができるため、これは可能です。
これは中間から高度なプログラムで一般的な発生ですが、一部のOOP構造はメタクラスを提供しません。これは、それらの必要性がないか、同様の機能を持つが他の何かと呼ばれる他のオブジェクトまたはクラスがあるためです。一部のコーディング構造は、複雑で高度なメタラスのみを提供する場合があります。他のメタスは、中間コーダーが使用するためのより簡単なメタレスを持っています。