Nieuw in OOP, eerste scriptje
Ik heb de code toegevoegd en wil graag weten of ik op de goede weg ben. Het is een simpel stukje code de een tafel opdrukt op het scherm.
tafels.php
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
include_once('tafels.class.php');
// b.v. de tafel van 5
$tafel = new Tafel(5);
echo $tafel->KopTekst();
echo $tafel->TafelUitvoer() ;
?>
include_once('tafels.class.php');
// b.v. de tafel van 5
$tafel = new Tafel(5);
echo $tafel->KopTekst();
echo $tafel->TafelUitvoer() ;
?>
tafels.class.php
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
class Tafel {
private $_tafel;
public function __construct( $tafel ) {
return $this->_tafel = $tafel;
}
public function TafelUitvoer() {
$tafeltekst='';
for( $maal = 1; $maal<=10; $maal++ ) {
$tafeltekst .= Tafel::_TafelRegel( $maal );
}
return $tafeltekst;
}
public function KopTekst() {
$tekst= 'De tafel van ' . $this->_tafel . '<br>';
return $tekst;
}
private function _TafelRegel( $maal ) {
$uitkomst = $this->_tafel * $maal;
$tafelregel = $maal . ' X ' . $this->_tafel . ' = ' . $uitkomst . '<br>';
return $tafelregel;
}
}
?>
class Tafel {
private $_tafel;
public function __construct( $tafel ) {
return $this->_tafel = $tafel;
}
public function TafelUitvoer() {
$tafeltekst='';
for( $maal = 1; $maal<=10; $maal++ ) {
$tafeltekst .= Tafel::_TafelRegel( $maal );
}
return $tafeltekst;
}
public function KopTekst() {
$tekst= 'De tafel van ' . $this->_tafel . '<br>';
return $tekst;
}
private function _TafelRegel( $maal ) {
$uitkomst = $this->_tafel * $maal;
$tafelregel = $maal . ' X ' . $this->_tafel . ' = ' . $uitkomst . '<br>';
return $tafelregel;
}
}
?>
Gewijzigd op 12/03/2011 15:21:57 door John goes
Om het nog compacter te maken, zou je de KopTekst() method ook in de TafelUitvoer() method kunnen aanroepen zodat je vanuit je procedurele code maar 1 method hoeft aan te roepen.
Verder zou ik wel even je naamgeving in de gaten houden. Kies een conventie en zorg dat je je daar structureel aan houdt. Dat komt de overzichtelijkheid van je code zeker ten goede. Zoek eens op internet naar veel gebruikte naamgeving conventies binnen (PHP) OOP.
Als ik het klaar heb zal ik het plaatsen.
Ik heb wel gemerkt dat je dit niet op de ad-hoc methode moet maken, maar dat je meer vooruit moet denken. Dit vergt wel aanpassing van je programmeer methode.
Wat ik me eigenlijk afvroeg, als je de methods klein houd, heb je meer tekst in je php-script staan door dat je meer regels gebruikt. Is dit van invloed op de verwerkings snelheid? Of is OOP meer efficient waardoor dit niet uitmaakt?
Kan iemand me een mooi Nederlands woord voor maintainability geven? ;)
Pim - op 16/03/2011 22:10:40:
(...)
Kan iemand me een mooi Nederlands woord voor maintainability geven? ;)
Kan iemand me een mooi Nederlands woord voor maintainability geven? ;)
Onderhoudsvriendelijkheid ?
Pim - op 16/03/2011 22:10:40:
Kan iemand me een mooi Nederlands woord voor maintainability geven? ;)
Onderhoudbaarheid was goed!
Dit volstaat:
Verder moet je eens nadenken over private <-> protected.
protected laat je toe dat klassen die van de jouwe zijn afgeleid ook toegang krijgen tot die eigenschappen ($this-> variabele) en methodes ($this-> functies).
Als je private gebruikt impliceer je dat het absoluut verboden moet zijn dat extends ooit die dingen kunnen aanroepen.
Het is uiteraard mogelijk dat je dat zo wil, maar misschien ook niet.
Gewijzigd op 17/03/2011 10:42:31 door Kris Peeters