Hoi,
Modular programmieren heisst für mich meistens, eine eigene Klasse mit
einem Satz thematisch zusammenhängender Funktionen zu erzeugen, die
völlig unabhängig von globalen Variablen, Environment und anderen Daten
ist (hat ja Michael schon geschrieben).
Mit Klassen verstehe ich aber nicht wirklich. Ich hab mal was allgemeines
dazu in einem C Tutorial gelesen(und nur das:),
Ueber Klassen? Das glaube ich nicht ;-) Hoechstens ueber Objekt-Orientierte
Programmierung. Oder es war nicht C, sondern C++
Mit Funktionen komme ich in PHP inzwischen ganz gut klar, benutze die viel.
Man übergibt dieser Funktion halt die Variablen, und bekommt dafür irgendwas
zurück. So weit so gut, die kann man dann ja ruhig mehrfach verwenden.
Richtig.
Aber wo ich noch nicht so ganz hintergestiegen bin, ist wofür und wie ich
jetzt Klassen verwende!? Was ist der Unterschied einer Klasse zu einer
Datei mit gesammelten zusammen-gehörigen Funktionen?
Klassen sind der Versuch, die Realitaet nachzubilden (wohlgemerkt: ich sage,
der Versuch ;-). Sie bilden eine Einheit: sie beinhalten ihre eigenen Daten
und ihre eigenen Funktionen, sie bilden eine eigene Einheit. Sogesehen bildet
also ein Modul durchaus eine eigene Klasse.
Objekt-Orientierung ist nicht abhaengig von der Implementierung, es ist eine
Betrachtungs-Weise und ein Programmier-Stil. Wenn du dich mit in Module
ausgelagerten Funktionen wohler fuehlst, dann bitte sehr, benutze sie.
Letztenendes ist es egal, ob du Klassen oder Module benutzt, solange die API
sauber definiert ist.
Und wie verwende ich Klassen in PHP? Ich habe zwar
http://www.dynamic-webpages.de/php/language.oop.php gelesen,
aber denn tieferen Sinn dahinter nicht wirklich begriffen. Ich verstehe
cinfach nicht was man von einer Klasse hat?
Nun, Klassen sind nur eine Notierungs-Art. Sie ist IMHO uebersichtlicher als
andere Schreibweisen und verfuehrt nicht dazu, *noch* eine Funktion
reinzupacken und *noch* eine Funktion und das ganze so zu ueberladen und
unterstuetzt so IMHO eine saubere Trennung.
Dazu bedient sich die Klasse eines eigenen API (Application Programming
Interface). Über diese Schnittstelle "kommuniziert" das Programm mit der
Klasse (eigentlich dem instantiierten Objekt) ausschliesslich! Damit ist
es möglich, z.B. den Quellcode der Klasse völlig neu zu schreiben, wenn
dabei das API beibehalten wird.
gilt das auch für PHP?
Das ist (fast) Sprachen-Unabhaengig ;-)
Das ist dann wie eine Aufgabenverteilung. Das Programm besorgt die
Daten, die es braucht um das Objekt über das API zu füttern. Die
Klassenroutinen übernehmen die Verarbeitung dieser Daten und geben das
Ergebnis über das API wieder zurück an das Programm.
das auch?
Das ist auch (fast) Sprachen-Unabhaengig.
Gruesse aus dem schoenen LH,
c.j.k