クラス::メタ

Class :: Metaは、Perlクラスの自動化、イントロスペクション、およびデータ検証です。
今すぐダウンロード

クラス::メタ ランキングとまとめ

広告

  • Rating:
  • ライセンス:
  • Perl Artistic License
  • 価格:
  • FREE
  • 出版社名:
  • David Wheeler
  • 出版社のWebサイト:
  • http://search.cpan.org/dwheeler/

クラス::メタ タグ


クラス::メタ 説明

Class :: Metaは、Perlクラスの自動化、イントロスペクション、およびデータ検証です。 Class :: Metaは、Perlクラスの自動化、イントロスペクテーション、およびデータ検証です。クラス:Package MyApp :: Thingy厳密を使う。クラス::メタを使用する。クラス:: Meta :: Types :: Stringを使用する。クラス:: Meta :: Types :: Numericを使用する。 begin {#このクラスのクラス:: Metaオブジェクトを作成します。 My $ CM =クラス::メター - > New(キー=> 'Thingy'); #コンストラクタを追加します。 $ cm-> add_constructor(name => 'new'、create => 1、); #生成されたメソッドを使用していくつかの属性を追加します。 $ cm-> add_attribute(name => 'uuid'、authz => class :: meta :: read、type => 'string'、必須=> 1、default => sub {data :: uuid-> new-> create_str}、); $ cm-> add_attribute(name => 'name'、=> 'string'、必須=> 1、default => undef、); $ cm-> add_attribute(name => 'age'、=> 'integer'、default => undef、); #カスタムメソッドを追加します。 $ cm-> add_method(name => 'chk_pass'、view => class :: meta :: public、); $ CM->ビルド;次にクラスを使用します.MyApp :: Thingy; My $ Thingy = MyApp :: Thingy-> New;印刷 "ID:"、$ Thingy-> ID、$ /; $ Thingy-> Name( 'Larry'); "名前:"、$ Thingy->名前、$ /;; $ Thingy->年齢(42); 「年齢:」、$ Thingy->年齢、$ /;またはイントロスペクションAPIを利用する:MyApp :: Thingyを使用してください。 My $ CLASS = MyApp :: Thingy-> My_Class;私の$ Thingy; 「クラスのオブジェクトを調べる」、$ CLASS->パッケージ、$ /; "NConstructors:n"を印刷します。 My $ CTOR($ CLASS->コンストラクタ){印刷 "o"、$ ctor-> name、$ /;; $ Thingy = $ ctor-> call($ class-> package); 「Nattributes:N」を印刷します。 My $ ATTR($ CLASS->属性){印刷 "o"、$ attr-> name、 "=>"、$ attr-> get($ Thingy)、$ /; if($ attr-> authz> =クラス::メタ::セット$ attr-> type eq 'string'){$ attr-> get($ Thingy、 'こんにちは!'); 「変更された」、「$ attr」 - > get($ Thingy)、$ /;; "nmethods:n"を印刷します。 My $ MEM($ CLASS->メソッド){印刷 "o"、$ meth-> name、$ /; $ meth-> call($ Thingy); Class :: Metaは、属性データ型の検証を使用してPerlクラスの作成を自動化するためのインタフェースを提供します。それは、すべてのクラス::メタ生成クラスのための統合インターフェイスとして使用できるイントロスペクションAPIを含むという点で、他のそのようなモジュールとは異なります。この意味で、それは「ファサード」デザインパターンの実装です。要件: ・Perl


クラス::メタ 関連ソフトウェア

su

SUXは、C ++とJavaのBasicおよび高度な簡潔なデータ構造の高性能ユーティリティのセットです。 ...

249

ダウンロード