我正在尝试构建一个基类 Table<T>,它使用列表 TableColumns<T> 在 Dart 中显示一个表格。在 Java 中,这将通过匿名类模式来完成,其中叶类看起来很简单,如下所示:
class PartTable extends Table< Part > {
// Column 1: Part Number
addColumn( new TableColumn<Part>("Part Number") {
String get(Part part) { part.getNumber().toString() }
void set(Part part, String number) {
part.setNumber(number);
}
});
// Column 2: Part Description
addColumn( new TableColumn<Part>("Part Description") {
String get(Part part) { part.getDescription().toString() }
void set(Part part, String desc) {
part.setDescription(desc);
}
});
}
任何人都可以提出一个 Dart 设计模式来很好地替代上面的 Java 匿名类模式吗?基本思想是匿名 TableColumn 类抽象方法(例如 get 和 set)被 Table 构造函数中的匿名类覆盖,以提供视图特定的覆盖以使用部件的属性。因此,表格可以有任意数量的列,并为表格单元格中的每个部件属性提供视图特定的 CRUD 行为。