myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

PHP Funktionen als Funktionen oder besser als Methoden?

Willkommen

myGully

Links

Forum

 
 
 
Themen-Optionen Ansicht
Prev Vorheriger Beitrag   Nächster Beitrag Next
Ungelesen 16.05.10, 19:05   #5
kramido
Erfahrener Newbie
 
Registriert seit: Apr 2010
Beiträge: 172
Bedankt: 31
kramido ist noch neu hier! | 0 Respekt Punkte
Standard

Alle Funktionen, die explizit auf Attribute der Objekte zugreifen, sollten gekapselt werden.

Als Beispiel: Du hast ein Klasse Mensch. Ein Mensch hat ein Gewicht und eine Größe. Möchtest du nun den BMI (Body-Mass-Index) errechnen, benötigst du beide Werte.

Es widerspricht nun grundsätzlich dem OOP-Gedanken eine Funktion zu implementieren, die ein "Mensch"-Objekt als Parameter übergeben bekommt, beide Werte ausliest, den BMI errechnet und zurückgibt. Sauberer wäre eine Kapselung der BMI-Berechnung als Methode in der Klasse.

Grundsätzliche Merkregel: Klassen sollten nur Methoden enthalten, die auch explizit mit den Attributen dieser zu tun hat.
Allgemeine Aufgaben, die unabhängig von den Klassenattributen erledigt werden (z.B. eine Methode, die die Anzahl der Merkmale eines Menschen (Größe, Gewicht, usw))) sollten als statische Methoden bzw. als Funktionen implementiert werden.

Es ist üblich, lose Sammlung von Funktionen zu einem Thema, die keinerlei Attribute benötigen, als statische Methoden einer Klasse zu implementieren. Natürlich sollte man dann die Klasse als abstrakt kennzeichnen, damit man sie nicht initiieren kann. Sie sollte dann keinerlei nicht-statische Methoden oder Attribute haben.

Ansonsten muss ich mich meinem Vorredner anschließen. Methoden sollten grundsätzlich nur in Vererbungshierarchien angelegt werden, wo sie auch Sinn machen. Einen BMI zu berechnen mag bei einem Menschen Sinn machen, aber bei einem allgemeinen Säugetier vielleicht noch nicht.
kramido ist offline   Mit Zitat antworten
 


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:31 Uhr.


Sitemap

().