Last week I had design review session about Map wrapper interfaces.
The interface is part of a module that allows a programmer to switch map infrastructure implementations within its product transparently to the logic of the UI layer
Part of the proposed interface looks something like this :
The goal of the MapSurface interface is to allow adding drawing annotations on the map like routes , spots areas etc.
Prons
1.KISS:
Very simple interface allow the programmer quickly learned how to use it even without documentation and code samples .
Cons
1.Open close principle violation:
In order to add handling for new widget type for an example a closed curved etc the IMapInterface should be changed .
2.The interface does not allow me to use the created route in a surface of a map in other window .