Flutter mixins(混入)淺析

Flutter mixins(混入)淺析

抽空複習了下dart 發現了mixins很有意思,特此記錄
原文:https://blog.csdn.net/weixin_44259356/article/details/106525644

什麼是Mixins

Mixins are a way of reusing a class’s code in multiple class hierarchies.
混入是一種在多個類層次結構中重用類代碼的方法。
類似於繼承(extends),接口實現(implements)。

定義

mixin A{
  void a(){
    print("XXX");
  }
}

爲什麼要用Mixins

首先引入一個問題:
有一個類叫老師:class Teacher,他有一個實例A,A平時要教學生唱歌,則繼承歌唱老師:class SingingTeacher,A還要教跳舞,再繼承跳舞老師:class DancingTeacher,可沒法多繼承啊,因爲所有的類都來自於object,不過我們可以讓跳舞老師繼承歌唱老師,然後再繼承歌唱老師,不過這樣一來歌唱老師就不是原來我們要的歌唱老師了,他還得會跳舞。
繼承不行,實現接口呢?
先實現歌唱老師interface SingingTeacher,再實現interface DancingTeacher,乍一看好像沒什麼問題,但是設想一下:唱歌老師會民俗歌曲,也會流行歌曲,跳舞老師會探戈,踢踏。A老師如果只需要民俗和探戈,也必須實現流行和踢踏。都好像不太好
Mixins,應運而生
我們可以定義一個mixin Able1,擁有能力民俗,再定義個mixin Able2,擁有能力探戈 然後組合它們:class Teacher with Able1,Able2完美解決

on限定類型

最後我們還可以限定下只有人才能唱歌跳舞,mixin Able1 on Personmixin Able1 on Person
然後class Teacher extends Person with Able1,Able2,問題就得到了解決

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章