4 ms·
This is the most controversial feature of Kotlin. The delegation is better than inheritance because you don't get all the methods from the base class if you do
by _old_dude_ 6y ago
This is the most controversial feature of Kotlin.
The delegation is better than inheritance because you don't get all the methods from the base class if you don't need them.
At my company, we have banned it, because if you add a method to Bar the method is automatically added to Foo which makes the delegation as fragile as the inheritance.
- throwaway894345 6y agoGo has a similar feature, and while I don't know that I would say it's especially controversial or frowned upon, it's good form to only use it sparingly if at all. I still wouldn't say that it is anywhere near as fragile as inheritance; however--I think inheritance's fragility comes from its polymorphism (not sure about Kotlin, but in Go, the wrapper class/struct can't be passed into a function that expects the component's type).
- snuxoll 6y ago> At my company, we have banned it, because if you add a method to Bar the method is automatically added to Foo which makes the delegation as fragile as the inheritance. Delegation does not remove the need for interfaces.