>> Of all 30+ files that were changed for this, there was only one method >> that ended up being backwards incompatible. That doesn't sound very >> brittle to me ;) > > You changed RedirectView's signature. That's not backward compatible. > Again, the reason for this problem is because of the extensive use of > inheritance for complex and brittle interactions with their implementations.
My comment was an illustration at how most of that code used composition (instantiating an object - StringBuilder - instead of receiving it from a protected method through inheritance). Only one method didn't do this, and I already stated it wasn't backwards compatible. While there are areas of the code that would do well to favor composition over inheritance, the large majority of the code base already does this, so I think it might be a bit misleading for you to represent us as "'deprecation thrashing' because of the extensive use of inheritance". It doesn't happen very often, and where it has, it has been localized to a few things that aren't that critical in the grand scheme of the project. But I'm pretty sure we do agree in principle :). Les
