Class vs. function



  • Wenn ich nun ein OOP-Gästebuch schreiben möchte.
    Wo liegt der Unterschied wenn ich eine extra function.php anlege und dort alle Funktionen schreibe (install(), connect_with_db(), get_entries(), insert_entry() delete_etry() etc...)

    oder wenn ich das nochmal in Klassen packe.
    Wann machen Klassen Sinn? Ich finde meine erste Variante schöner. Wenn ich das nochmal in extra Klassen haue, wirds doch mega unübersichtlich?



  • Es macht keinen Sinn, alles "in Klassen" zu "packen". Davon wird ein prozedurales Design (= durch funktionale Zerlegung entstanden) nicht objektorientiert. Objektorientierung ist ein Bottom-Up-Ansatz. Du musst erstmal die Objekte in deiner Domäne finden (z.B. Gästebuch, Eintrag, Benutzer, DB, ...), die Beziehungen zwischen denen entwerfen, und dann erst dafür sorgen dass sie im Zusammenspiel ein funktionierendes Gästebuch bilden.
    Es könnte aber auch sein, dass das für die Anwendung Overkill ist... 😉



  • Wie müsste denn ein Gästebuch vorbildlich aufgebaut sein?



  • oop-nerd schrieb:

    Wie müsste denn ein Gästebuch vorbildlich aufgebaut sein?

    In Anbetracht der Tatsache, daß die Objekte zwar mit Datenbankzeilen korrespondieren, die Datenbank aber unabhängig von deinem Objekten zaubern kann, hast Du ein pöses Dilemma.
    Kein Ausweg. Es gibt kein schönes php/mysql-Gästepuch.

    Ich würde gar keine Klassen der Anwendungsdomäne bauen. Nur das Datenbank-Geraffel ein wenig wegkapseln. Für ein Gästebuch reicht wohl schon eine Funktion, die eine peliebige query ausführt als <table> ausgibt.



  • oop-nerd schrieb:

    Wie müsste denn ein Gästebuch vorbildlich aufgebaut sein?

    Also da brauchen wir eine Klasse Entry, eine Klasse DBConnection, einen DBConnectionPool, einen ObjectMapper, einen HTMLBuilder und weil die Benutzer untscheidliche Skins haben wollen, auch noch eine SkinPreferences Klasse und eine HTMLBuilderFactory, die uns für einen Skin die passende HTMLBuilder Klasse gibt. Puh...



  • Würde man mein Projekt als "unsauber"/schlecht programmiert bezeichnen, wenn ich einfach alle funktion in ner seperaten Datei schreibe und diese dann entsprechend einbinde und komplett auf Klassen verzichte?



  • oop-nerd schrieb:

    Würde man mein Projekt als "unsauber"/schlecht programmiert bezeichnen, wenn ich einfach alle funktion in ner seperaten Datei schreibe und diese dann entsprechend einbinde und komplett auf Klassen verzichte?

    nö, religions krieg 😃



  • ein simples Gästebuch kannst du auch funktional programmieren. Aber sobald z.B. eine Benutzerverwaltung dazukommt, fährst du mit Klassen besser.
    Wobei es nie schaden kann, zusammenhängende Daten in einer Klasse zu kapseln. Die Logik kann ja weiter in Funktionen stecken, aber die Datenhaltung und die Kommunikation mit der Datenbank erfolgt in Klassen.

    Außerdem vermeidest du so eine übergroße functions.php



  • zwutz schrieb:

    ein simples Gästebuch kannst du auch funktional programmieren. Aber sobald z.B. eine Benutzerverwaltung dazukommt, fährst du mit Klassen besser.
    Wobei es nie schaden kann, zusammenhängende Daten in einer Klasse zu kapseln. Die Logik kann ja weiter in Funktionen stecken, aber die Datenhaltung und die Kommunikation mit der Datenbank erfolgt in Klassen.

    Außerdem vermeidest du so eine übergroße functions.php

    funktional != prozedural dürfte ein Top-Tipp in diesen Religionsdiskussionen sein.

    MfG SideWinder



  • SideWinder schrieb:

    funktional != prozedural dürfte ein Top-Tipp in diesen Religionsdiskussionen sein.

    Ich weiß. Und weiter? Es dürfte in PHP relativ schwer fallen, auf den prozeduralen Ansatz vollständig zu verzichten, egal ob man objektorientiert oder funktional programmiert



  • zwutz schrieb:

    SideWinder schrieb:

    funktional != prozedural dürfte ein Top-Tipp in diesen Religionsdiskussionen sein.

    Ich weiß. Und weiter? Es dürfte in PHP relativ schwer fallen, auf den prozeduralen Ansatz vollständig zu verzichten, egal ob man objektorientiert oder funktional programmiert

    Mit welchen Sprachen hast du bisher was funktional programmiert?



  • zwutz schrieb:

    SideWinder schrieb:

    funktional != prozedural dürfte ein Top-Tipp in diesen Religionsdiskussionen sein.

    Ich weiß. Und weiter? Es dürfte in PHP relativ schwer fallen, auf den prozeduralen Ansatz vollständig zu verzichten, egal ob man objektorientiert oder funktional programmiert

    Du weißt nicht.



  • zwutz schrieb:

    SideWinder schrieb:

    funktional != prozedural dürfte ein Top-Tipp in diesen Religionsdiskussionen sein.

    Ich weiß. Und weiter? Es dürfte in PHP relativ schwer fallen, auf den prozeduralen Ansatz vollständig zu verzichten, egal ob man objektorientiert oder funktional programmiert

    Das macht gerade keinen Sinn.

    @oop-nerd:
    Einfach Code herzeigen, dann kann man über sowas viel besser reden.

    Ein Paradigma zu verwenden nur um es zu verwenden ist idR eine schlechte Idee. Wenn es sich für dich Prozedual gut anfühlt, dann mach es so. Wenn du genug Code zum herzeigen hast dann poste ihn hier und wir können darüber reden.


Anmelden zum Antworten