LINUXSOFT.cz
Nazwa użytkownika: Hasło:     
    CZ UK PL

> Komentarze :: článek Perl (63) - OOP - závěr

privatni data u objektu 3.10.2007 16:54
Roman Vašíček

Perl narozdíl od některých jiných jazyků umožňuje přistupovat k atributům třídy z programu i bez přístupové metody.

To nemusi byt uplne pravda. Zalezi totiz na tom jak vlastni objekt vytvarite. Pokud je zapotrebi aby data byla opravdu privatni a nebylo k nim mozne pristupovat jinak, nez pres metody objektu, muzeme pouzit tzv. Inside-out objekty a uzavery.

Zde je jednoduchy priklad modulu, u nejz se primo k atributum neostanete a je nutne pouzit metodu objektu.

package XYZ;
use strict;
# pro jednoznacnou identifikaci objektu # (pokud nechci pouzivat externi moduly) sub ident { my $ret; return 0 if !ref($_[0]); "$_[0]" =~ /\(([^)]+)\)/; eval "\$ret = $1;"; return $ret; }
{ my %value_of;
sub new { my ($class, $param) = @_; my $new_object = bless \do{my $anon_scalar}, $class; $new_object->set_value($param) if ($param); return $new_object; }
sub get_value { my ($self) = @_; return $value_of{ident $self}; }
sub set_value { my ($self, $new_value) = @_; my $old = $self->get_value(); $value_of{ident $self} = $new_value; return $old; } } 1;

KOMENTARZE
privatni data u objektu 3.10.2007 16:54 Roman Vašíček
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
> Szukanie oprogramowania
1. Pacman linux
Download: 4851x
2. FreeBSD
Download: 9044x
3. PCLinuxOS-2010
Download: 8541x
4. alcolix
Download: 10916x
5. Onebase Linux
Download: 9631x
6. Novell Linux Desktop
Download: 0x
7. KateOS
Download: 6219x

1. xinetd
Download: 2383x
2. RDGS
Download: 937x
3. spkg
Download: 4693x
4. LinPacker
Download: 9918x
5. VFU File Manager
Download: 3173x
6. LeftHand Mała Księgowość
Download: 7171x
7. MISU pyFotoResize
Download: 2776x
8. Lefthand CRM
Download: 3540x
9. MetadataExtractor
Download: 0x
10. RCP100
Download: 3089x
11. Predaj softveru
Download: 0x
12. MSH Free Autoresponder
Download: 0x
©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz