Interfaces

Hm. OOP programmeren is heel erg fijn. Alleen heb ik nog nooit ‘advanced trickery’ nodig gehad. Maar vandaag ben ik toch verzeild geraakt in een situatie waar ik interfaces in PHP 5.x op een nuttige manier kon aanwenden: abstractie maken van een database backend!

Het verhaal gaat als volgt: een bepaald object A krijgt bij inistantiëring een ander object B als argument mee. B zorgt voor de connectie en dataoverdracht met een database backend. Zoals we allemaal wel weten heb je daar een pleiade aan mogelijkheden: MSSQl, MySQL, PEAR, PostGreSQL,… en dan vergeet ik er nog wel een paar. Omdat ik natuurlijk niet kan inschatten aan welke database men A zou willen koppelen, heb ik een interface gemaakt waaraan iedere database object B moet voldoen wil een instantie ervan kunnen worden doorgegeven als argument aan A.

Het gevolg is dus dat ik mij niet meer druk hoef te maken over honderd-tig mogelijke databaseobjecten, errorhandling op dat niveau,… Dat is nu voor diegene die ooit de koppeling zou willen leggen. En die heeft enkel maar de regeltjes te volgen die ik afdwing in een goedgedocumenteerde API en presto!

Het is fijn soms eens het licht te zien!

2 replies

Commentaar is gesloten