[Dresden-pm] Frage zur Implementation von einer Schnittstelle -
Torsten Knorr
create-soft at freenet.de
So Nov 6 01:37:26 PDT 2011
Hallo Hans-Dietrich,
> From hd.kirmse at gmx.de Sat Nov 5 13:51:29 2011
> From: hd.kirmse at gmx.de (Hans-Dietrich Kirmse)
> Date: Sat, 05 Nov 2011 21:51:29 +0100
> Subject: [Dresden-pm] Frage zur Implementation von einer Schnittstelle -
> Zweifellos ist das eine Schnittstelle, wenn auch eine sehr einfache.
muß zugeben das meine Auffassung von Schnittstellen eine andere ist.
Schnittstellen sind ein modernes Konzept aus der .NET-Programmierung
und der Begriff hatt in den letzten Jahren dadurch zumindest für mich
eine anderer Bedeutung bekommen.
> Moose gibt (wenn ich das richtig verstanden habe). Aber Polymorphismus
> wird letzlich auch mit Pointern/Referenzen umgesetzt, auch wenn man das
> als Programmierer nicht mitbekommt
Das obige Beispiel nutzt die Vererbungshierarchie, also keine Zeiger.
Ein Ansatz mit Zeigern währe der folgende.
#!/usr/bin/perl -w
#*** main.pl ***#
#------------------------------------------------
use strict;
use Format;
#------------------------------------------------
my $format = new Format();
print($format->{ref_function}());
#------------------------------------------------
#*** Format.pm ***#
#------------------------------------------------
package Format;
use AddOn;
#------------------------------------------------
sub new
{
my ($class, %args) = @_;
my $self = \%args;
$self->{ref_function} = AddOn->can('UserNameFormat') || sub { return
"Default Format\n"; };
bless($self, $class || ref($class));
return $self;
}
1;
#------------------------------------------------
#*** AddOn.pm ***#
#------------------------------------------------
package AddOn;
#------------------------------------------------
# sub UserNameFormat
# {
# return "AddOn Format\n";
# }
1;
#------------------------------------------------
> hm, ich bin Laienkünstler ;) Ich habe mich noch nie mit bless & Co
> abgegeben und werde das ganz bestimmt auch nicht machen, weil es ja
> Moose gibt
Moose ist natürlich vollkommen o.k. Aber gibst du deinen Schülern die
rechnen lernen wollen gleich einen Taschenrechner?
Gruß Torsten
Mehr Informationen über die Mailingliste Dresden-pm