Naar aanleiding van een artikel op PHPBuilder ben ik een 'data access object' systeempje aan het maken. Een 'frontend', een 'datarecord' en een 'object storage'. Een methode om klassen enigzins simpel in een database te plaatsen dus.
Relevante klasse vingerafdruk:
Dilemma is nu als volgt: ik kan de klasse 'SqlRecord' verantwoordelijk maken voor het genereren van relevante sql queries (INSERT/DELETE/UPDATE). Of ik kan deze functionaliteit insluiten in de klasse Storage. Storage is in dit geval een simpele wrapper om het PEAR package DB.
Argumenten voor/tegen generatie in SqlRecord:
- [voor] Storage hoeft niet te weten hoe hij de kolommen uit SqlRecord hoeft te halen
- [voor] SqlRecord heeft waarschijnlijk toch al een methode initialiseerUitDb(), dus praat daar al met DB
- [tegen] Verschillende klasse voor elke soort database, verlies daarmee de kracht van het gebruik van 'PearStorage'.
Waarschijnlijk nog wel een paar meer, maar ik zit vooral met het tegenargument. Hoe zou jij dit doen? Want ik zit hier een beetje vast mee. In mijn ogen is voor allebei iets te zeggen, maar kom er niet helemaal uit.
Relevante klasse vingerafdruk:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| <?php class Storage { /* ... */ function storeRecord() {} } class SqlRecord { function getColumn() { } function setColumn() { } } class Storable { function Storable() { /* Initialiseert een SqlRecord */ } /* Heeft X aantal accessors/modifiers als volgt: */ function SetField ( $mValue ) { $this->_oSqlRecord->setColumn('Field', $mValue); } } ?> |
Dilemma is nu als volgt: ik kan de klasse 'SqlRecord' verantwoordelijk maken voor het genereren van relevante sql queries (INSERT/DELETE/UPDATE). Of ik kan deze functionaliteit insluiten in de klasse Storage. Storage is in dit geval een simpele wrapper om het PEAR package DB.
Argumenten voor/tegen generatie in SqlRecord:
- [voor] Storage hoeft niet te weten hoe hij de kolommen uit SqlRecord hoeft te halen
- [voor] SqlRecord heeft waarschijnlijk toch al een methode initialiseerUitDb(), dus praat daar al met DB
- [tegen] Verschillende klasse voor elke soort database, verlies daarmee de kracht van het gebruik van 'PearStorage'.
Waarschijnlijk nog wel een paar meer, maar ik zit vooral met het tegenargument. Hoe zou jij dit doen? Want ik zit hier een beetje vast mee. In mijn ogen is voor allebei iets te zeggen, maar kom er niet helemaal uit.
[ Voor 8% gewijzigd door Verwijderd op 20-05-2003 19:46 ]