同じ構造を持った被継承テーブルを複数作りたい、という場合、以下の様なコードになります。
1.元になる構造体を1つ定義する。
(例:元構造体(Basic))
2.被継承テーブルの構造体を定義する。
(例:分類構造体(Affiliation))
(1)上記の構造体を継承(extends)して、別名の構造体を定義する。
(例:分類構造体(Affiliation))
(2)コンストラクタの引数には、super を使う。
以上で、被継承テーブルの構造体の定義は完了です。
3.被継承テーブルが複数ある場合は、上記2を繰り返す。
以上で、複数の被継承テーブルの構造体の定義は完了です。
4.データを、上記2~3で定義したテーブルに登録します。
例:
// 元構造体
class Basic {
String name;
IconData icon;
Basic(this.name, this.icon);
}
// 分類構造体
class Affiliation extends Basic {
Affiliation(super.name, super.icon);
}
// 抽出条件構造体
class Extract extends Basic {
Extract(super.name, super.icon);
}
// 分類(初期値)
List<Affiliation> affiliationList = [
Affiliation('全てのカテゴリ',Icons.category),
Affiliation('買物',Icons.shopping_cart),
Affiliation('仕事',Icons.work),
Affiliation('家事',Icons.home),
Affiliation('プライバシー',Icons.privacy_tip),
];
// 抽出条件(初期値)
List<Extract> extractList = [
Extract('新しいカテゴリ',Icons.add),
Extract('完了カテゴリ',Icons.done_all),
Extract('新しいタスク',Icons.add),
Extract('完了タスク',Icons.done_all),
Extract('全てのタスク',Icons.category),
];
以上で、同じ構造を持つ別名の複数テーブル作成は、完了です。