In addition to being consistent with our existing practices, implementing a pure abstract/interface is more straightforward for users since they can be sure it comes without any hidden baggage.
I do have some concerns about having a Null/SkeletonWindowManager in the first place (at least as a public production interface), though. Allowing users to inherit from such a class, creates a coupling with the implementation, which I am not convinced is worth it for what this class has to offer (at the moment at least). Why, as things stand, do we want to offer SkeletonWindowManager vs just offering the WindowManager interface?
In addition to being consistent with our existing practices, implementing a pure abstract/interface is more straightforward for users since they can be sure it comes without any hidden baggage.
I do have some concerns about having a Null/SkeletonWi ndowManager in the first place (at least as a public production interface), though. Allowing users to inherit from such a class, creates a coupling with the implementation, which I am not convinced is worth it for what this class has to offer (at the moment at least). Why, as things stand, do we want to offer SkeletonWindowM anager vs just offering the WindowManager interface?