[PHP] Vage constructie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik krijg hier zonet code onder mijn vingers gedrukt met daarin een constructie waar ik bar weinig van begrijp. Het betreft een OOP based CMS.

Er zijn allerlei classes met zeer korte namen aanwezig. Bijvoorbeeld usr en sess. Deze worden eerst ge-include. Daarnaast zijn er ook classes met de namen user en session. Het lijkt op het volgende stukje PHP:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
class usr
{
}

class sess
{
}

class user extends usr
{
}

class session extends sess
{
}
?>


De classes hebben beide dezelfde functies. Enkel zijn die in de sess class allemaal lege stub functies.

Ik vraag me af waarom er voor deze constructie gekozen is? Het is niet onderhoudsvriendelijk en nogal kazig of je het mij vraagt :) Ze simuleren interfaces oid waarbij ze 2 classes met dezelfde functies hebben :r.

Wellicht een snelheidsoptimalisatie?

Suggesties anybody? :Y)

Acties:
  • 0 Henk 'm!

Verwijderd

Dus sess heeft de zelfde functies als usr, maar bij sess zijn ze niet ingevuld? Slaat idd nergens op...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik kom er zonet achter dat de sess en de usr class soms ook function body's kennen maar daar wordt het nog niet duidelijker op :P

Acties:
  • 0 Henk 'm!

  • Pete
  • Registratie: November 2005
  • Laatst online: 07-09 17:51
zijn er misschien meerdere classes die child zijn van sess of usr?

petersmit.eu


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Niet voor zover ik ze heb kunnen vinden. Het is telkens een 1 op 1 relatie.

[ Voor 33% gewijzigd door Verwijderd op 24-01-2006 09:56 ]


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Waarschijnlijk om een session class als user class te laten fungeren, maar zodat usr en sess onafhankelijk van elkaar met extra code aangevuld kunnen worden. Ik denk ook dat ze lege stubs hebben toegevoegd om errors te voorkomen als op session een functie wordt aangeroepen die niet bestaat. Al met al, een slecht design.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

Verwijderd

Misschien is het gemaakt door iemand die gewend is in een andere taal te programmeren en dacht hij/zij om een puur virtuele klasse aan te maken op die manier? Daar lijkt het in ieder geval op.

Acties:
  • 0 Henk 'm!

  • Juulleke
  • Registratie: December 2002
  • Laatst online: 02-08 23:36

Juulleke

.nl

Zoek eens op "facade" en "factory" in de context van "design patterns".
Volgens mij is hier een poging toe gedaan.

Juulleke


Acties:
  • 0 Henk 'm!

  • BarôZZa
  • Registratie: Januari 2003
  • Laatst online: 18:59
Ziet eruit als iemand die op school begonnen is met de basics van Java en vervolgens een PHP projectje kreeg.

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Juulleke schreef op dinsdag 24 januari 2006 @ 10:08:
Zoek eens op "facade" en "factory" in de context van "design patterns".
Volgens mij is hier een poging toe gedaan.
Sorry hoor, maar wat een onzin is dat. Ik kan hier op geen enkele manier een factory of een facade in herkennen.

Een factory is een object dat de verantwoordelijkheid heeft een ander object te construeren. In geval van een abstract factory bepaald hij van welke class die een bepaalde interface implementeerd een instantie wordt aangemaakt.

Een facade geeft toegang tot en controleert de communicatie met een gerelateerde groep objecten. Het levert dan een duidelijke interface met functies die direct gebruikt kunnen worden door de client en daar ook meningvol voor zijn. Verder heeft het als doel alle koppelingen tussen de client en de objecten die de facade te controleert te beperken tot alleen de facade.

Mischien zou je kunnen uitleggen waarom het op een factory of een facade lijkt? Mij lijkt het dan eerder op template method, of gewone polymorphisme. Boven alles lijkt het me een slecht design.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het lijkt mij idd ook geen factory of facade pattern. Het heeft geen van de kenmerken van deze design patterns imho. Mijn eerste indruk was een slecht ontwerp of idd iemand die net van java naar php is gestapt en op deze manier dacht een soort van interfaces te bakken.

Mocht er iemand nog andere id-en hebben dan hoor ik het uiteraard graag, voorlopig houdt ik het hier op ;)
Verwijderd schreef op dinsdag 24 januari 2006 @ 10:08:
Misschien is het gemaakt door iemand die gewend is in een andere taal te programmeren en dacht hij/zij om een puur virtuele klasse aan te maken op die manier? Daar lijkt het in ieder geval op.
Voor zover ik weet is dit niet het geval. Ik zal het eens navragen voor de zekerheid :)

[ Voor 45% gewijzigd door Verwijderd op 24-01-2006 10:43 ]

Pagina: 1