Search code examples
flutterdictionarydartextendsimplements

What's the difference between `MapBase` and `MapMixin` in terms of coding my own Map class?


I want to code my own Map class. MapBase and MapMixin have similar documentations. Which one should I use to code my own Map class? And why?

I understand MapBase has more functions because it implements MapMixin. However, the functions in MapBase don't seem to be important because all of its functions are static.

...
/// A basic `Map` class can be implemented by extending this class and
/// implementing `keys`, `operator[]`, `operator[]=`, `remove` and `clear`.
/// The remaining operations are implemented in terms of these five.
...
abstract class MapBase<K, V> extends MapMixin<K, V> {
...
/// A basic `Map` class can be implemented by mixin in this class and
/// implementing `keys`, `operator[]`, `operator[]=`, `remove` and `clear`.
/// The remaining operations are implemented in terms of these five.
...
abstract class MapMixin<K, V> implements Map<K, V> {

Solution

  • It does not really matter. The advantage with the mixin is that you can include multiple mixins in your class where you can only extend from one class.