Saat ve tarih bilgilerini işleyen basit bir Perl modülü yazıyorum. Perl ile nesne yapımında bir erişimci kullanmak kabul edilebilir mi ...Bir kurucuda erişimci yöntemlerini kullanabilir miyim?
package Time;
# Constructor
sub new {
my $class = shift;
my %args = @_;
# Create an empty object
my $self = bless {};
# Get input arguments
my $second = exists $args{'second'} ? $args{'second'} : (localtime)[0];
# Use the accessor to validate and populate object data
$self->second($second);
return $self;
}
# Second accessor
sub second {
my $self = shift;
my $second = shift;
# Input validation
if (defined $second) {
if ($second =~ m{^\d+$} && $second >= 0 && $second <= 59) {
$self->{'second'} = $second;
}
else {
die "'second' must be an integer between 0 and 59!";
}
}
return $self->{'second'};
}
Sorum şu: Aşağıda basitleştirilmiş yapıcı sürümü ve erişimci yöntemlerden biridir? yapıcı iç erişimciyi kullanma
giriş erişgeç tarafından doğrulandıktan beri bu yüzden yapıcı kendisi doğrulama kodunun tüm gerekmez yapar, ama bu yanlış bir uygulamadır?
Bunu yapmak istemem için herhangi bir sebep var mı?
Perl'in bir kurucu kavramı yoktur. 'new', sadece diğerleri gibi statik bir yöntemdir. – ikegami