setters og getters er jo metoder der tillader andre klasser at ændre attributter i din klasse. Den har jo selv adgang altid. Derfor kan jeg ikke se nogen grund til at initialisere variabler i en constructor med en intern setter metode?
(disclaimer: min viden om OOP i php kan ligge på et meget lille sted)
Hvis din get/set metode ud over at sætte den private variabel, også foretager et check eller en beregning, bør du bruge get/set-metoden, også inde fra klassen.
Og da du ikke kan vide om den måske kommer til at gøre det i fremtiden ("Hov, må det kun være positive tal? Ok, jeg indsætter lige et check."), fremtidssikrer du ved at bruge get/set metoderne.
Men hvis jeg må spørge; Du sender ikke værdien som parameter til constructoren, så ville man ikke i det konkrete tilfælde bare erklære og initialisere variablen i samme åndedrag?
Men da man ofte sender en værdi som parameter til constructoren ved instantiering, er det vel en god ide ar bruge get/set i denne for at undgå dobbeltarbejde i forhold til variabel-tjek?
Lige før jeg smutter - er der en af jer der kender en god artikel, der omhandler brugen af public/protected/private variabler/funktioner. Jeg ved godt hvad forskellen er, men jeg er altid i tvivl om hvornår jeg med fordel kan benytte det ene eller det andet.
Synes godt om
Slettet bruger
30. januar 2005 - 16:48#10
Lige et ekstra indspark til det oprindelige spørgsmål:
Hvis du bruger getters og setters, bør du altid bruge dem også indefra. Det er jo meningen at skidtet stadig skal virke korrekt, hvis der bliver lavet en afledt klasse.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.