Beste devvers,
Kort maar krachtig:
- Het is niet mogelijk om constructors te definieren in interfaces.
- Het gebruik van abstracte klassen vind ik niet the way to go (ik wil immers geen gedrag of skelet vastleggen, alleen verplichte functionaliteit in de zin van methoden, bv: connect, openDo(adrr), closeDo(adrr), setAo(adrr, val) etc.)
Ik heb een bestaande applicatie en wil het mogelijk maken voor derden om bijvoorbeeld andere IO drivers te schrijven (nu zijn mensen afhankelijk van de hardware die ik voorhanden heb). Nu is het probleem de parameters die ik via de constructor meegeef.
In een interface kun je geen constructors definieren... Als je interfaces op deze manier gebruikt heb je dus bijvoorbeeld properties voor 'settings' die je object nodig heeft. Bijvoorbeeld: een lamp object kan in de software niet functioneren zonder dat deze een io-controller object aangewezen krijgt.
Hoe geef je op een juiste manier aan welke van deze 'settings' een waarde MOETEN krijgen (in de interface)? Kan dit enkel in dcumentatie of hebben ze hier iets slims op bedacht? Of is dit toch een stukje 'gedrag' en moet ik voor abstracte klassen gaan?
Kort maar krachtig:
- Het is niet mogelijk om constructors te definieren in interfaces.
- Het gebruik van abstracte klassen vind ik niet the way to go (ik wil immers geen gedrag of skelet vastleggen, alleen verplichte functionaliteit in de zin van methoden, bv: connect, openDo(adrr), closeDo(adrr), setAo(adrr, val) etc.)
Ik heb een bestaande applicatie en wil het mogelijk maken voor derden om bijvoorbeeld andere IO drivers te schrijven (nu zijn mensen afhankelijk van de hardware die ik voorhanden heb). Nu is het probleem de parameters die ik via de constructor meegeef.
In een interface kun je geen constructors definieren... Als je interfaces op deze manier gebruikt heb je dus bijvoorbeeld properties voor 'settings' die je object nodig heeft. Bijvoorbeeld: een lamp object kan in de software niet functioneren zonder dat deze een io-controller object aangewezen krijgt.
Hoe geef je op een juiste manier aan welke van deze 'settings' een waarde MOETEN krijgen (in de interface)? Kan dit enkel in dcumentatie of hebben ze hier iets slims op bedacht? Of is dit toch een stukje 'gedrag' en moet ik voor abstracte klassen gaan?