Citaat
Om eerlijk te zijn is dit nog geen OO maar eerder classes en functies maken, OO is een denkwijze die hier nog niet echt klopt.
Er wordt veel gezegd dat OO een denkwijze is. Daar ben ik het niet mee eens. Om goed object georiënteerd te programmeren moet je op een andere wijze denken, maar dat is iets anders dan wanneer object oriëntatie een denkwijze zou zijn.
Objecten
Wanneer je goed object georiënteerd wilt kunnen programmeren moet je weten wat een object, een eigenschap en een methode is. Object is eigenlijk gewoon een object, zoals de naam als zegt. Bijvoorbeeld een auto, een huis, een computer en een fiets. Wanneer je een website maakt zou dat betekenen dat objecten bijvoorbeeld een gebruiker is, een database, een databasetabel (!) en een reactie op een forum.
Methodes
Methodes zijn actief die met het object kunnen worden uitgevoerd. Een database kan bijvoorbeeld een query uitvoeren, en een reactie kan worden verwijderd, toegevoegd of worden beoordeeld.
Eigenschappen
Daarnaast heeft een object eigenschappen. Eigenschappen zijn waardes die afhankelijk zijn van de instantie van dat object. Een gebruiker kan bijvoorbeeld als eigenschappen een gebruikersnaam e-mail en voornaam hebben. Maar ook kan een gebruiker als eigenschappen zijn forum reacties hebben. Deze reacties zijn vervolgens dan zelf ook weer objecten, dit licht dan ook iets ingewikkelder. Een database heeft als eigenschappen bijvoorbeeld de naam, het aantal uitgevoerde query's en een type. Maar NIET het resultaat van de uitgevoerde query, tenslotte kan één database meerdere query's uitvoeren en dus meerdere resultaten opleveren. De resultaten zullen dus ook weer object op zich zijn (die wel weer toe kunnen behoren aan het database object).
Ik hoop dat ik dat een beetje duidelijk heb kunnen maken zo.
De wijziging die dein voorstelt zal ik dan ook niet doorvoeren. Hij breid 'User' uit met 'User_Settings' terwijl 'User_Settings' geen 'User' is, maar iets heel anders. 'Administrator' kan bijvoorbeeld wel 'User' uitbreiden, tenslotte is een administrator een gebruiker.
De user settings zijn denk ik de eigenschappen van de gebruiker, deze zou ik dus ook als eigenschappen in het object definiëren.
Daarnaast zou ik nog een object item, reply en database result toevoegen.
Ik zou je willen adviseren in je ontwerp ook de proporties (eigenschappen) toe te voegen, zo kunnen wij beter zien of je met een goed ontwerp van start gaat.
Een interessante manier om dit soort applicaties te ontwerpen is UML. Echter denk ik dat dat voor dit topic veel te ver gaat.
Ik ben benieuwd wat je er van maakt, en je kunt dus zeker nog feedback verwachten. Succes!:cheer: