Schrift
[thread]6335[/thread]

Modularisierung und OOP

Tags: Ähnliche Threads

Leser: 1


<< >> 5 Einträge, 1 Seite
Gast Gast
 2004-06-15 14:53
#83350 #83350
Ich überarbeite eine Datenbankapplikation. Ich möchte als Verbesserung eine Abstraktion zwischen Visualisierung und Datenhandling schaffen um alternativ zum Webfrontend auch z.B. ein TK oder wxWidgets Frontend anbieten zu können. Bis jetzt habe ich meistens alles in den einzelnen Skripten untergebracht und wenig modularisiert. Als erstes möchte ich die Abstraktionsebene für die Datenbank erstellen.
Gehört die Verbindung zur Datenbank ($dbh) in den Konstruktor der Objekte oder kann er auch zentral durch die Klasse zur Verfügung gestellt werden?
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package staff_db;

my $dbh = &get_dbh(); # Klassenweit?

sub new {
 my $class = shift;
 $class = ref($class) || $class;
 my $self = {};
 $self->{dbh} = &get_dbh(); # im Konstruktor?
 bless($self, $class);
 return $self;
}

1;

Sind Variablen die zentral im package deklariert sind für die Methoden nutzbar?

Gruss,
Ronnie
Crian
 2004-06-15 15:31
#83351 #83351
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
> Sind Variablen die zentral im package deklariert sind für die Methoden nutzbar?

Ja, aber Du musst damit rechnen, dass verschiedene Objekte sich die Daten überschreiben können.

Wenn Du "nur" Module machst, die Funktionen anbieten, gibt es ja quasi nur ein Objekt, und dieses Problem besteht nicht.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Taulmarill
 2004-06-15 15:32
#83352 #83352
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
also, ich würde das im konstruktor unterbringen, da mann dann keine probleme mit meheren konstrukten bekommt.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Gast Gast
 2004-06-15 15:56
#83353 #83353
Ein kleines Modul das die Verbindung zur Datenbank herstellt (beendet) und das DB-Handle per $self->{'Handle'} zurückliefert ist recht einfach zu schreiben.
Ronnie
 2004-06-16 00:37
#83354 #83354
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Danke für die Tipps. Es klappt schon ganz gut.
<< >> 5 Einträge, 1 Seite



View all threads created 2004-06-15 14:53.