One example when you want to open a class is that if you want to add properties to an existing class by default. For example: many instances of ember applications do not extend the class of the router. They just use the default router class. But what if you want to add some properties to the class of the router that you want to use somewhere else. rediscovering is quite useful. This is one case that I can think of.
Also, in the case of extending the router, the class is difficult because most of the code in ember simply uses the router class. Even if you expand, some callbacks / closures will still apply to the earlier class of the router.
VNarasimhaM
source share