- Perlについての質問箱 64箱目 [転載禁止]©2ch.net
571 :デフォルトの名無しさん[sage]:2015/10/25(日) 21:16:54.27 ID:+VcrnbUt - オブジェクト指向の書き方と言うか使い方がいまいちよくわからんのだけど、
なんかいろいろあるんだけど、 use strict; { package obj; sub new { my $class = shift; return bless { NAME => 'hoge', }, $class; } sub method{ my $self = shift; } } package main; my $instance = obj->new(); print $instance->{NAME} . "\n"; #1: 普通にアクセス出来ますが…? カプセル化とはいったい…? obj::new(); #2: 使用側の呼び出しによってクラス名が自動送信されたりされなかったりする。オブジェクトかどうかは「呼び出し側が」決めるの? どうにかしてくれ my $instance2 = obj->method(); #3: コンストラクタなのか通常のメソッドなのか区別が付かない。誤った使用法が普通に発生出来る。なんとかしてくれ。 ちょっとだけperldocだかを見てきたけど、なんでも自由にアクセス出来るのが売りだみたいなことを自慢げ(?)に書いてあった。 いやそれオブジェクト指向じゃねぇから。対策教えてくれ。 使用者がモジュールごとの仕様を熟知して地雷をよけながら歩くのがデフォルトかよ
|