カテゴリ:perl5
ところが、そのないはずの隠蔽化を強制する仕組みがすでに発見されているのです。perlのOOPの要件である、隠蔽化(カプセル化?)についてはアクセサやデストラクタの定義で、そこからアクセスする行儀の良い方法が推奨されているのですが、直接オブジェクトリファレンス(blessed reference)に触ることもできなくはないようです。 しかし、InsideOutという手法では、隠蔽化を強制して行儀の悪いアクセス、つまりアクセサ経由でしかアクセス出来ない仕組みだそう。Perl OOP インサイドアウトオブジェクト 情報隠蔽 (d080) でも相当詳しく解説があります。あまり、理解できてないですが。 perlのOOPモジュールである、Moo を復習しようと調べて始めたのですが、どうも大袈裟な感じを受けたのでした。で、私は大きなプロジェクトをする予定はないので、シンプルで仕組みも解りやすいOOPモジュールをcpanで探していたら、Object::InsideOut を見つけたのでした。”has”とか”is”のキーワードは要らないと思うので、そのコードの字面も良いかなと。 このインサイドアウトなモジュールは、Object::InsideOut 以外にもまあまあcpanに登録済みだそうで、ここに詳しい。 perlのOOPは、要はリファレンスの名前管理とその操作だと思うので、そこをあまり隠さないインサイドアウト方式はなんとなくシックリくる感じ。 Class::InsideOut の方がシンプルな感じ。ですががテストスクリプトをみて、解りやすそうな Object::InsideOut をまた時間をみて弄りたいと思ったのでした。エラーコードも親切な感じ。 お気に入りの記事を「いいね!」で応援しよう
最終更新日
2020.06.09 00:00:13
コメント(0) | コメントを書く
[perl5] カテゴリの最新記事
|
|