Schrift
[thread]8341[/thread]

Abstrakte Klassen und Interfaces in Perl

Leser: 3


<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten
pug
 2006-09-18 15:28
#69971 #69971
User since
2005-08-17
91 Artikel
BenutzerIn
[default_avatar]
Ist es möglich in Perl ein Interface zu definieren, bzw ganze abstrakte Klassen (ähnlich wie Java/C++)? Gibt es ein Modul, welches diese Funktionalität hinzufügt?

Gruss Christian
Ein Betriebssystem sie zu knechten, sie alle zu finden, Ins Dunkel zu treiben und ewig zu binden.

William Gates III
pktm
 2006-09-18 15:49
#69972 #69972
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package MyPackage;

use base 'Superklasse'; # wenn man will

sub new{
 # Konstruktor hier...
} # /new

# meine Methoden hier

1;

my $obj = new MyPackage;
$obj->methode();


Google auch mal nach "Perl OOP".

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
Gast Gast
 2006-09-18 15:59
#69973 #69973
@pktm
Was hat der Code denn mit "echten" Interfaces zu tun? Das ist einfach eine normale Vererbung.

Ich glaube, es geht eher um das objektorientierte Konzept der Interfaces, was sich leider (meines Wissens nach) nicht wirklich bequem und adäquat - wenn überhaupt - in Perl umsetzen lässt. Schade eigentlich ...

Gruß
binsenweise
Gast Gast
 2006-09-18 17:44
#69974 #69974
Was sollen "echte" Interfaces denn sein?
pktm
 2006-09-18 17:56
#69975 #69975
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
[quote=Guest,18.09.2006, 13:59]@pktm
Was hat der Code denn mit "echten" Interfaces zu tun? Das ist einfach eine normale Vererbung.

Ich glaube, es geht eher um das objektorientierte Konzept der Interfaces, was sich leider (meines Wissens nach) nicht wirklich bequem und adäquat - wenn überhaupt - in Perl umsetzen lässt. Schade eigentlich ...

Gruß
binsenweise[/quote]
Was meinst du denn mit echten Interfaces? Du kannst in Perl einen Namensraum deklarieren, Objekte mit Konstruktoren und Methoden erstellen usw. Es gibt eine Reihe von Modulen, die die Erstellung von Klassen einfacher machen sollen, z.B. Class::Generate.
Objektorientierung beinhaltet m. Wissens Vererbung. Klassen werden von einander abgeleitet. Deswegen auch das Beispiel. Das ist schließlich ein echtes objektorientiertes Beispiel.

Mann kann auch so etwas wie Kapselung umsetzen. Dazu siehe diesen Artikel hier: http://www.csse.monash.edu.au/~damian/TPC/1999/Encapsulation/Paper.html

Aber am besten gibst du mal ein Beispiel dessen, was du haben / wissen möchtest (z.B. in einer anderen Programmiersprache).

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
Gast Gast
 2006-09-18 18:15
#69976 #69976
Ich nehme an Traits (Class::Trait) entsprechen eher dem, was gesucht wird. Was "echte" Interfaces sein sollen, würde mich aber immer noch interessieren :)
nepos
 2006-09-18 18:40
#69977 #69977
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Sowie ich das Class::Trait sehe, ist das eher eine Nachbildung der Properties, die bei Windows-Programmierung oft genutzt werden. Sieht mir nicht so recht nach Interfaces aus.
Gast Gast
 2006-09-18 19:00
#69978 #69978
Ein Interface ist eine Schnittstelle. Nachdem mir immer noch niemand gesagt hat, *was für* Interfaces gemeint sind, trifft eine OOP API genauso zu wie Traits.
pug
 2006-09-18 19:41
#69979 #69979
User since
2005-08-17
91 Artikel
BenutzerIn
[default_avatar]
Also Interfaces: in Java gibt es z.B. keine mehrfach-Vererbung. Damit aber eine Klasse neben von seiner Elternklasse mehr als nur derern Methoden erben kann, gibt es Interfaces. Das sind Methoden, die eine bestimmte Signatur haben ( also sagen wir zwei Strings und ein Integer... ) die aber selbst leer sind. Das heist der Programmierer muss diese Methoden erst mit Leben füllen.

In C++ (u.A.) gibt es dann auch ganze abstrakte Klassen, bei denen keine einzige Methode implementiert ist.
Ein Betriebssystem sie zu knechten, sie alle zu finden, Ins Dunkel zu treiben und ewig zu binden.

William Gates III
Gast Gast
 2006-09-18 19:50
#69980 #69980
Perl-Funktionen haben von sich aus keine Argument-Signatur. Das
meiste könnte man zwar implementieren, macht aber wenig Sinn.
Es wäre sinnvoller zu sagen, was du erreichen willst. Dann kann
man dir sagen, wie das in Perl üblicherweise gelöst wird.

Java-Strategien mit Perl-Programmierung zu kreuzen, geht IMHO
meist ins Auge. Jeder Sprache ihre Idiome.
<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten



View all threads created 2006-09-18 15:28.