Thread Programmgerüst und Gültigkeitsbereiche (20 answers)
Opened by tonewheel at 2007-04-13 12:24

Ronnie
 2007-04-14 13:04
#23672 #23672
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
[quote=tonewheel,13.04.2007, 15:03]Nochwas zum Verständnis; sind alle Module automatisch Klassen, oder erstmal nur Namensräume mit Ansammlungen von statischen Methoden? Falls ich ein Modul verwende (und im Falle dessen, das eine Klasse ist), kann ich dessen Instanzen als sowohl Aggregation als auch als Assoziation in meine eigenen Klassen/Objekte einbinden, bzw. macht das überhaupt Sinn, oder geht man bei Perl andere Wege?
Falls ich Moose verwende, lässt sich dieses Konzept dann mit den "normalen" Klassen (vorhandener Module wie z.B. DBI) kombinieren (also was Aggregation und Assoziaion betrifft)?[/quote]
Also, Module sind erstmal nur Namensräume. Nur wenn man den Perl-typischen weg wählt und einen Konstruktor definiert, wird daraus eine Klasse. Moose-Objekte sind quasi klassische Perl-Objekte, also 'gesegnete' Hash-Referenzen. Sie habe auch die selben Schwächen, also eine nur bedingt taugliche Kapselung. Wer direkt auf den Inhalt des Hashs zugreift wird daran nicht gehindert. Die Accessoren können dies aber sehr wohl, sogar mit Typprüfung wenn es sein muss. Wer echte Kapselung in Perl will, der kommt um eine InsideOut Lösung wie CPAN:Class::InsideOut nicht drumrum.

Deine Frage mit der Aggregation und Assoziation ist mir nicht klar, kann also erstmal keine vernünftige Antwort bieten.

View full thread Programmgerüst und Gültigkeitsbereiche