2012-04-06 13 views
1

wenn ich Methoden wieWrapper für Getter-Methoden

function getVar1(){ 
    return $this->var1; 
} 

function getVar2(){ 
    return $this->var2; 
} 

und so weiter ...

und diese Vars sollen auf dem Bildschirm gedruckt werden, ist es eine gute Idee, zusätzliche Methoden erstellen die sie direkt ausdrucken?

wie

function Var1(){ 
    echo $this->getVar1(); 
    } 

    function Var2(){ 
    echo $this->getVar2(); 
    } 

oder sollte ich Stick mit Echo getVar1() aufgerufen wird, wo ich sie brauche?

+0

Die eigentliche Kunstfehler hier sind die seichten Getter selbst. – mario

+0

warum flach? Was meinst du damit? Die Getter sollten nur eine geschützte Variable zurückgeben. was stimmt damit nicht? – thelolcat

+0

Siehe http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html für einige Diskussionen. Es ist nicht übermäßig objektorientiert, um sie zu haben. – mario

Antwort

2

Funktionen sollten tun, was ihr Name bedeutet. Es ist eines der Kernprinzipien des Designs. Wenn Sie getVar() sagen, macht es, was es tun soll: eine Variable zurückgeben.

In Ihrem Beispiel geben Sie nicht einmal an, was die Funktion macht. Wenn Sie eine Funktion haben möchten, die etwas druckt, dann rufen Sie es printVar1() oder etwas ähnliches.

Auf der anderen Seite muss ich ThiefMaster zustimmen. Sie können einfach das Echo getVar1() verwenden, anstatt größere Klassen zu erstellen. Vor allem in einer interpretierten Sprache wie PHP (wo Klassen mehr Overhead als eine kompilierte Sprache hinzufügen).

+0

PHP wird für eine Weile in Bytecode kompiliert ... – KingCrunch

+0

@KingCrunch: PHP kann in Byte-Code kompiliert werden, aber das ist für spezielle Situationen. 98% von PHP, das heute ausgeführt wird, wird bei jeder Anfrage interpretiert. –

+0

Nur ohne APC und auch ohne APC wird PHP-Code nicht mehr interpretiert. – KingCrunch

3

Verwenden Sie echo getVar1(); für diesen Zweck. Das Erstellen von Funktionen ist nicht nur eine Zeitverschwendung, sondern auch eine großartige Möglichkeit, Ihren Code mit nutzlosem Zeug zu überladen.