What's Up With The Pro API Object Model? Concretions all the way down.
The Pro API. I'm surprised to find that the object model is completely bereft of interface declarations. It's either a base abstract type or a concretion.
This seems crazy to me. Net does not support multiple inheritance - what is the strategy for using object composition? None, it seems like. What about mocking? The Pro API is a poor replacement for the deeply comprehensive, fine-grained, and interface-based ArcObjects model.
The Pro API object model does nothing to encourage loose coupling and GOF/Fowler/Beck/Cunningham principles of reuse - as articulated by Martin/Feathers: SOLID.
Not only that, the Pro API design actively fosters tightly-coupled, concretion-dependent relationships. Was it intentional to fully neglect DIP? To fully neglect the first principle of object-oriented reusable design:
Program to an interface, not an implementation. - Gang of Four
Is there an ongoing discussion here or in any other forums discussing this? Anyone want to send me your thoughts direct - feel free.
Thanks - joe