OOP PDO Member systeem vraag
Noppes Homeland op 27/03/2011 11:28:18:
Het is dan wel OOP maar gebruikt op een zeer inefficiente manier.
Nu nog al die onzin eruit met prefix underscore bij variabelen en functies. Je bent ook niet zo consequent in de manier waarop je je functies en variabelen schrijft.
Het is alles camelcase of alles lowercase.
Voor de rest zie ik nog steeds dat je queries afvuurt binnen de class, niet doen, op deze manier is de class niet herbruikbaar voor andere projecten.
Je bent nog steeds bezig met het dubbelop registreren / opslaan van gegevens, dus maak geen overbodige variabelen aan!!
Oh en een sql statement valt niet onder het kopje string, want binnen het SQL statement dien je al te quoten met enkele quotes en niet met ""
Dus SQL statement wel quoten met "".
Nu nog al die onzin eruit met prefix underscore bij variabelen en functies. Je bent ook niet zo consequent in de manier waarop je je functies en variabelen schrijft.
Het is alles camelcase of alles lowercase.
Voor de rest zie ik nog steeds dat je queries afvuurt binnen de class, niet doen, op deze manier is de class niet herbruikbaar voor andere projecten.
Je bent nog steeds bezig met het dubbelop registreren / opslaan van gegevens, dus maak geen overbodige variabelen aan!!
Oh en een sql statement valt niet onder het kopje string, want binnen het SQL statement dien je al te quoten met enkele quotes en niet met ""
Dus SQL statement wel quoten met "".
bedankt voor je goeie reactie
ik heb het even aangepast
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
class User {
private $db;
public function __construct( PDO $db ) {
$this->db = $db;
}
public function getid( $username ) {
$this->getuserdata($username);
$this->userid = $this->userdata['id'];
}
public function getname( $username ) {
$this->getuserdata($username);
$this->username = $this->userdata['username'];
}
public function getemail( $username ) {
$this->getuserdata($username);
$this->useremail = $this->userdata['email'];
}
public function getstatus( $username ) {
$this->getuserdata($username);
$this->userstatus = $this->userdata['status'];
}
public function getuserdata( $username, $sql ) {
$stmt = $this->db->prepare($sql);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$result)
{
throw new Exception("Error: Niets gevonden..");
}
$this->userdata = array();
foreach ($result as $key => $var)
{
$this->userdata[$key] = $var;
}
}
private function reportmessage($case)
{
switch ($case)
{
case 1:
$this->reportmessage = 'Error:Niets gevonden.. ';
break;
}
}
}
?>
class User {
private $db;
public function __construct( PDO $db ) {
$this->db = $db;
}
public function getid( $username ) {
$this->getuserdata($username);
$this->userid = $this->userdata['id'];
}
public function getname( $username ) {
$this->getuserdata($username);
$this->username = $this->userdata['username'];
}
public function getemail( $username ) {
$this->getuserdata($username);
$this->useremail = $this->userdata['email'];
}
public function getstatus( $username ) {
$this->getuserdata($username);
$this->userstatus = $this->userdata['status'];
}
public function getuserdata( $username, $sql ) {
$stmt = $this->db->prepare($sql);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$result)
{
throw new Exception("Error: Niets gevonden..");
}
$this->userdata = array();
foreach ($result as $key => $var)
{
$this->userdata[$key] = $var;
}
}
private function reportmessage($case)
{
switch ($case)
{
case 1:
$this->reportmessage = 'Error:Niets gevonden.. ';
break;
}
}
}
?>
is het zo beter?
edit:
ik neem aan dat je dan zo met de query moet komen
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
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
<?php
include_once "db_config.php";
include_once "user.class.php";
$username = "MaDHouSe";
$user = new User($db);
try {
$sql = "SELECT id,username,email,status FROM users WHERE username = '" . $username . "'";
$user->getuserdata($username,$sql);
echo $user->getid($username);
echo $user->getname($username);
echo $user->getemail($username);
echo $user->getstatus($username);
}
catch(Exception $e)
{
echo '<pre>';
echo 'Regelnummer: '.$e->getLine().'<br>';
echo 'Bestand: '.$e->getFile().'<br>';
echo 'Foutmelding: '.$e->getMessage().'<br>';
echo '</pre>';
}
?>
include_once "db_config.php";
include_once "user.class.php";
$username = "MaDHouSe";
$user = new User($db);
try {
$sql = "SELECT id,username,email,status FROM users WHERE username = '" . $username . "'";
$user->getuserdata($username,$sql);
echo $user->getid($username);
echo $user->getname($username);
echo $user->getemail($username);
echo $user->getstatus($username);
}
catch(Exception $e)
{
echo '<pre>';
echo 'Regelnummer: '.$e->getLine().'<br>';
echo 'Bestand: '.$e->getFile().'<br>';
echo 'Foutmelding: '.$e->getMessage().'<br>';
echo '</pre>';
}
?>
Toevoeging op 27/03/2011 12:58:31:
Ik heb even wat aangepast..
maar ik zet bijvoorbeeld een test als user die niet bestaad dan krijg ik de melding: Message: Niets gevonden..
maar testuser bestaad wel. en dan blijft me scherm wit?
weet iemand wat ik fout doe?
index.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
include_once "db_config.php";
include_once "user.class.php";
$user = new User($db);
try {
$sql = "SELECT id,username,email,status FROM users WHERE username = 'testuser' ";
$user->getuserdata($sql);
echo $user->getid();
echo $user->getname();
echo $user->getemail();
echo $user->getstatus();
}
catch(PDOException $e)
{
echo '<pre>';
echo $e->getMessage();
echo '</pre>';
}
?>
include_once "db_config.php";
include_once "user.class.php";
$user = new User($db);
try {
$sql = "SELECT id,username,email,status FROM users WHERE username = 'testuser' ";
$user->getuserdata($sql);
echo $user->getid();
echo $user->getname();
echo $user->getemail();
echo $user->getstatus();
}
catch(PDOException $e)
{
echo '<pre>';
echo $e->getMessage();
echo '</pre>';
}
?>
user.class.php
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
42
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
42
<?php
class User {
private $db;
public function __construct( PDO $db ) {
$this->db = $db;
}
public function getid() {
$this->userid = $this->userdata['id'];
}
public function getname() {
$this->username = $this->userdata['username'];
}
public function getemail() {
$this->useremail = $this->userdata['email'];
}
public function getstatus() {
$this->userstatus = $this->userdata['status'];
}
public function getuserdata($sql) {
$stmt = $this->db->prepare($sql);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$result)
throw new PDOException("Message: Niets gevonden..");
$this->userdata = array();
foreach ($result as $key => $var)
{
$this->userdata[$key] = $var;
}
}
}
?>
class User {
private $db;
public function __construct( PDO $db ) {
$this->db = $db;
}
public function getid() {
$this->userid = $this->userdata['id'];
}
public function getname() {
$this->username = $this->userdata['username'];
}
public function getemail() {
$this->useremail = $this->userdata['email'];
}
public function getstatus() {
$this->userstatus = $this->userdata['status'];
}
public function getuserdata($sql) {
$stmt = $this->db->prepare($sql);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$result)
throw new PDOException("Message: Niets gevonden..");
$this->userdata = array();
foreach ($result as $key => $var)
{
$this->userdata[$key] = $var;
}
}
}
?>
Gewijzigd op 27/03/2011 12:57:08 door Robert dat ben ik
getuserdata heeft twee parameters
bij het opvragen van id,username,email en status geef jij het sql statement niet mee. En al zal je dat wel doen dan nog is het inefficient, dat wordt dan 5x query afvuren om de usergevens te verkrijgen.
----------------------------------------
Om niet te veel af te wijken van wat je nu hebt/had:
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?php
class User {
private $db;
private $reportmessage = array();
private $id;
private $username;
private $email;
private $status;
public function __construct(PDO $db,$username) {
$this->db = $db;
$this->user = $username;
}
public function getid() {
return $this->id;
}
public function getname() {
return $this->username;
}
public function getemail() {
return $this->email;
}
public function getstatus() {
return $this->status;
}
/*
onderstaande methods behoren niet thuis in deze class
Het gaat nu om het idee van
*/
private function checkusername() {
if (trim($this->user) != '') {
return true;
}
return false;
}
public function getuserdata() {
if ($bOk = this->checkusername()) {
$sql = "SELECT id
, username
, email
, status
FROM users
WHERE username = '".$this->user."'";
if ($stmt = $this->db->prepare($sql)) {
if ($stmt->execute()) {
$result = $stmt->fetch(PDO::FETCH_ASSOC);
$this->id = $result['id'];
$this->username = $result['username'];
$this->email = $resutl['email'];
$this->status = $result['status']
}
else {
$this->setreportmessage('Execute ging fout');
$bOk = false;
}
}
else {
$this->setreportmessage('Prepare ging fout');
$bOk = false;
}
}
else {
$this->setreportmessage('UserName is niet ingevuld');
}
return bOk;
}
private function setreportmessage($error) {
$this->reportmessage[] = $error
}
public getreportmessage() {
return $this->reportmessage[0];
}
}
$cUser = new User($db,'Pietje');
if ($cUser->getuserdata()) {
echo $cUser->getuserid().'<br />';
echo $cUser->getusername().'<br />';
}
else {
echo $cUser->getreportmessage();
}
?>
class User {
private $db;
private $reportmessage = array();
private $id;
private $username;
private $email;
private $status;
public function __construct(PDO $db,$username) {
$this->db = $db;
$this->user = $username;
}
public function getid() {
return $this->id;
}
public function getname() {
return $this->username;
}
public function getemail() {
return $this->email;
}
public function getstatus() {
return $this->status;
}
/*
onderstaande methods behoren niet thuis in deze class
Het gaat nu om het idee van
*/
private function checkusername() {
if (trim($this->user) != '') {
return true;
}
return false;
}
public function getuserdata() {
if ($bOk = this->checkusername()) {
$sql = "SELECT id
, username
, status
FROM users
WHERE username = '".$this->user."'";
if ($stmt = $this->db->prepare($sql)) {
if ($stmt->execute()) {
$result = $stmt->fetch(PDO::FETCH_ASSOC);
$this->id = $result['id'];
$this->username = $result['username'];
$this->email = $resutl['email'];
$this->status = $result['status']
}
else {
$this->setreportmessage('Execute ging fout');
$bOk = false;
}
}
else {
$this->setreportmessage('Prepare ging fout');
$bOk = false;
}
}
else {
$this->setreportmessage('UserName is niet ingevuld');
}
return bOk;
}
private function setreportmessage($error) {
$this->reportmessage[] = $error
}
public getreportmessage() {
return $this->reportmessage[0];
}
}
$cUser = new User($db,'Pietje');
if ($cUser->getuserdata()) {
echo $cUser->getuserid().'<br />';
echo $cUser->getusername().'<br />';
}
else {
echo $cUser->getreportmessage();
}
?>
En als je nu deze class goed bekijkt zie je hoe zinloos deze is, maar het gaat om het idee.
Gewijzigd op 27/03/2011 13:43:26 door Noppes Homeland
hoe lijkt dit dan?
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
42
43
44
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
42
43
44
<?php
/**
* PHP Member System
*
* @Filename user.class.php
* @Version 1.0
* @Author MaDHouSe
* @Website www.madirc.nl
*/
/**
* User class
*
* Global user class.
*/
class User {
private $db;
public function __construct( PDO $db ) {
$this->db = $db;
}
public function getuserdata($sql) {
if ($stmt = $this->db->prepare($sql))
if ($stmt->execute())
if (!$result = $stmt->fetch(PDO::FETCH_ASSOC))
throw new PDOException("Message: Niemand gevonden..");
$this->data = array();
foreach ($result as $key => $var)
{
$this->data[$key] = $var;
}
throw new PDOException("Message: Iemand gevonden..");
throw new PDOException("Message: execute mislukt..");
throw new PDOException("Message: prepare mislukt..");
}
}
?>
/**
* PHP Member System
*
* @Filename user.class.php
* @Version 1.0
* @Author MaDHouSe
* @Website www.madirc.nl
*/
/**
* User class
*
* Global user class.
*/
class User {
private $db;
public function __construct( PDO $db ) {
$this->db = $db;
}
public function getuserdata($sql) {
if ($stmt = $this->db->prepare($sql))
if ($stmt->execute())
if (!$result = $stmt->fetch(PDO::FETCH_ASSOC))
throw new PDOException("Message: Niemand gevonden..");
$this->data = array();
foreach ($result as $key => $var)
{
$this->data[$key] = $var;
}
throw new PDOException("Message: Iemand gevonden..");
throw new PDOException("Message: execute mislukt..");
throw new PDOException("Message: prepare mislukt..");
}
}
?>
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
include_once 'db_config.php';
include_once 'user.class.php';
$user = new User($db);
$username = 'testuser';
try {
$user->getuserdata("SELECT id,username,email,status FROM users WHERE username = '".$username."' ");
}
catch(PDOException $e)
{
echo '<pre>';
echo $e->getMessage();
echo '</pre>';
}
if(isset($user->data['id']) && $user->data['id'] >=1)
{
echo 'ID: '.$user->data['id'].'<br>';
echo 'Username: '.$user->data['username'].'<br>';
echo 'Email: '.$user->data['email'].'<br>';
echo 'Status: '.$user->data['status'].'<br>';
}
?>
include_once 'db_config.php';
include_once 'user.class.php';
$user = new User($db);
$username = 'testuser';
try {
$user->getuserdata("SELECT id,username,email,status FROM users WHERE username = '".$username."' ");
}
catch(PDOException $e)
{
echo '<pre>';
echo $e->getMessage();
echo '</pre>';
}
if(isset($user->data['id']) && $user->data['id'] >=1)
{
echo 'ID: '.$user->data['id'].'<br>';
echo 'Username: '.$user->data['username'].'<br>';
echo 'Email: '.$user->data['email'].'<br>';
echo 'Status: '.$user->data['status'].'<br>';
}
?>
is dit wel goed zo?
Gewijzigd op 27/03/2011 15:08:59 door Robert dat ben ik
en je bent nog steeds bezig om gegevens dubbel te registreren.
Noppes Homeland op 27/03/2011 15:08:17:
Nee want je blijft PDO gebruiken binnen de clas(ses) waarin het niet thuis hoort
en je bent nog steeds bezig om gegevens dubbel te registreren.
en je bent nog steeds bezig om gegevens dubbel te registreren.
wat bedoel je met gegevens dubbel registreren dan?
en hoe moet ik PDO er buiten houden dan?
echt die zegt dit en die zegt dat zo word leren er niet makkelijker op :D
Gewijzigd op 27/03/2011 15:13:12 door Robert dat ben ik
dus ik begrijp niet wat je zit te kutten met die foreach loop van $result
en die loop staat ook nog eens op een plek waarbij $result === false kan zijn en dus geen array is.
Als je dat soort basis niet weet te onderscheiden, dan vraag ik mij af of Oopen voor jou niet Oepsen gaat worden.
een database transactie is geen eigenschap van User en dus dien je het er buiten te houden.
maar ja, het is in principe je eigen keuze of je het tot een eigenschap bombardeerd, je komt er vanzelf wel een keer achter dat het niet handig is om database transacties te doen in elke class die gaat maken.
de volgende constructie moet je ook afleren:
if (!$result = $stmt->fetch(PDO::FETCH_ASSOC))
duidelijker is:
if (($result = $stmt->fetch(PDO::FETCH_ASSOC)) === false)
of
if (($result = $stmt->fetch(PDO::FETCH_ASSOC)) !== false)
net als zaken als:
$ok = 'goed';
if ($ok) {
niet logisch zijn om te doen
Maar waarom lees je niet eerst wat OOP handleidingen, mischien dat je dan beter de in en outs gaat begrijpen.
http://www.phptuts.nl/view/45/
http://www.pfz.nl/wiki/oop-toepassen/
http://www.pfz.nl/wiki/object-oriented-programming/
Andere keuze die je kunt maken is om naar de beep te gaan en daar een PHP 5 OOP boek uit het schap te rukken wat jouw aanspreekt.
Bij die zie je wel querys uitgevoerd worden en de anders zegt dat mag niet of hoord er niet thuis.
ik ben nu 2 weken bezig om oop te begrijpen maar als iedereen andere dingen zegt word je daar niet blij van.
die zegt je moet pdo gebruiken die zegt weer niet
die zegt querys horen er niet in thuis en die zegt het kan wel
die zegt je moet try en catch gebruiken en die weer niet die zegt je kan ook gewoon een error handeling maken.
je word er helemaal gek van.
ik denk dat er vast meer mensen zijn met dit probleem.
Ik hoop dan ook dat er ergens een echt goed en werkend voorbeeld is.
waarmee je wat kan en ook echt leert om met OOP te kunnen werken.
die handleidingen slaan ook nergens op want ook daar worden querys uit gevoerd, dus ik snap best dat het voor sommigen mensen moeilijk is om dit onder de knie te krijgen.. waaronder ik dus.
Quote:
je word(t) er helemaal gek van.
terecht dan wel onterecht
En over het aangehaalde zal altijd wel onenigheid blijven bestaan.
Dus doe gewoon je ding en vraag niet specifiek of het "correcte OOP" is.
In feite bevat een class eigenschappen van de class benaming, die eigenschappen worden gezet (setter) en opgehaald (getter), daarnaast kan je methods (functies) hebben die helpen om de eigenschappen van de class te bewaken dan wel te manipuleren.
Dus als bijvoorbeeld de definitie van een username is dat dat altijd lowercase is, dan kan je dat bij het setten regelen. Het tegenovergesteld kan ook, dat als je een username niet lowercase aan de user class geeft dat dat niet goed is.
Noppes Homeland op 27/03/2011 16:37:56:
terecht dan wel onterecht
En over het aangehaalde zal altijd wel onenigheid blijven bestaan.
Dus doe gewoon je ding en vraag niet specifiek of het "correcte OOP" is.
In feite bevat een class eigenschappen van de class benaming, die eigenschappen worden gezet (setter) en opgehaald (getter), daarnaast kan je methods (functies) hebben die helpen om de eigenschappen van de class te bewaken dan wel te manipuleren.
Dus als bijvoorbeeld de definitie van een username is dat dat altijd lowercase is, dan kan je dat bij het setten regelen. Het tegenovergesteld kan ook, dat als je een username niet lowercase aan de user class geeft dat dat niet goed is.
Quote:
je word(t) er helemaal gek van.
terecht dan wel onterecht
En over het aangehaalde zal altijd wel onenigheid blijven bestaan.
Dus doe gewoon je ding en vraag niet specifiek of het "correcte OOP" is.
In feite bevat een class eigenschappen van de class benaming, die eigenschappen worden gezet (setter) en opgehaald (getter), daarnaast kan je methods (functies) hebben die helpen om de eigenschappen van de class te bewaken dan wel te manipuleren.
Dus als bijvoorbeeld de definitie van een username is dat dat altijd lowercase is, dan kan je dat bij het setten regelen. Het tegenovergesteld kan ook, dat als je een username niet lowercase aan de user class geeft dat dat niet goed is.
dus als ik je goed begrijp:
is oop dus gewoon een class die eigenschappen van een bepaalde object kan bepalen of wel ook te manipuleren.
dus als ik een username heb met: MaDHouSe zou ik in de class de eigenschappen kunnen maken dat die naam lowercase moet zijn dus madhouse
en of tegenovergesteld
ik snap dat een username een object is waarbij je eigenschappen kunnen bepalen, zo als kijken of de username online is bijvoorbeeld, of de juiste rechten heeft om ergens te mogen zijn.
als ik in objecten denk, denk ik zo:
een huis is een object waarbij ik veel eigenschappen zou kunnen bepalen, bijvoorbeeld de deur kleur.. die zou ik kunnen bepalen welke kleur het moet of kan zijn.
de kleur die ik wil bepalen is dus de setter en van uit de index.php haal je de getter op toch zeg ik dit zo goed?
username is een eigenschap van instantie
Ja een huis kan een object zijn, maar elk afzonderlijk te benoemen deel van een huis - zoals keuken, woonkamer, eetkamer, slaapkamer, toilet, badkamer, zolder - zijn ook zelfstandige objecten, maar z'n object kan alleen bestaan als het aan het object huis gekoppeld kan worden.
Basaal geschreven: als je databasenormalisatie redelijkwijs weet toe tepassen kan je dat ook op classes toepassen - muz dat je dan nog de methods moet definieren per class -.
Noppes Homeland op 27/03/2011 17:12:00:
Nee username is geen object, een object krijg je even simpel gezegd bij het initialiseren van een class ( $user = new User() )
username is een eigenschap van instantie
Ja een huis kan een object zijn, maar elk afzonderlijk te benoemen deel van een huis - zoals keuken, woonkamer, eetkamer, slaapkamer, toilet, badkamer, zolder - zijn ook zelfstandige objecten, maar z'n object kan alleen bestaan als het aan het object huis gekoppeld kan worden.
Basaal geschreven: als je databasenormalisatie redelijkwijs weet toe tepassen kan je dat ook op classes toepassen - muz dat je dan nog de methods moet definieren per class -.
username is een eigenschap van instantie
Ja een huis kan een object zijn, maar elk afzonderlijk te benoemen deel van een huis - zoals keuken, woonkamer, eetkamer, slaapkamer, toilet, badkamer, zolder - zijn ook zelfstandige objecten, maar z'n object kan alleen bestaan als het aan het object huis gekoppeld kan worden.
Basaal geschreven: als je databasenormalisatie redelijkwijs weet toe tepassen kan je dat ook op classes toepassen - muz dat je dan nog de methods moet definieren per class -.
Ok dus dan krijg je een indeling van dit zeg maar:
Huis {
-kamer
--badkamer
---deur
----kleur
---wc
----kleur
-
--woonkamer
---muur
----kleur
---stoel
----kleur
--slaapkamer
---bed
----kleur
---kast
----kleur
}
zo iets dus.
Dus met het voorbeeld van een huis:
Huis
- woonkamer
- slaapkamer
- badkamer
+ getHuis()
Slaapkamer
- deur
- bet
+ setBet()
+ setDeur()
+ getSlaapkamer()
Woonkamer
- deur
- bank
- tv
+ setDeur()
+ setBank()
+ setTv()
+ getWoonkamer()
Badkamer
- deur
- wc
+ setDeur()
+ setWc()
+ getBadkamer()
En dan zou je nog verder in objecten kunnen gaan en dus een class deur, wc, bank, tv, enz. aanmaken. Het ligt er maar net aan hoe ver je wilt denken in objecten.
Gewijzigd op 28/03/2011 17:27:25 door Robert dat ben ik