我正在使用 Flutter/Dart 但这确实是我对所有语言都有的基本 OOP 问题。
我正在寻找一个答案,告诉我以下哪些设计具有最好的资源管理和最简单的编码。
这个类似的帖子并不能真正让我满意,我觉得我需要一个更好的黑白答案,可以辨别这两种设计。
情况一
一个很少修改的对象,它被创建一次,但经常阅读,很少更新
情况二
一个访问量很大的对象——主要是读取动作,但经常创建,很多对象 1000+ 并且它们将被定期过滤
示例:
List<SalesIncome> salesIncome = "Sales income from DB";
num totalSalesIncome = salesIncome.where((salesPerson) =>
salesPerson.contains('John Lohn')).toList().reduce((a, b) => a + b);
两者中哪一个具有最好的资源管理(内存和 CPU)和最好的 CRUD 操作在 API 末端下游的可编码性?不问主观问题。
为了澄清,我想知道哪种对象设计#1 或#2 最适合每种情况 1 和 2。
enum TimePeriod {weekly, monthly, yearly}
#1
class SalesQuota {
String salesPerson;
TimePeriod quotaPeriod;
num grossIncomeQuota;
int quotaDate;
}
#2
class SalesQuota {
String salesPerson;
TimePeriod quotaPeriod;
Map<int, num> quotaData;
}
Example for multiple object creation:
#1
SalesQuota(
John Lohn,
TimePeriod.weekly,
45600.00
1646125200000)
SalesQuota(
John Lohn,
TimePeriod.weekly,
50000.00
1646730000000)
SalesQuota(
John Lohn,
TimePeriod.weekly,
65000.00
1647331200000)
SalesQuota(
John Lohn,
TimePeriod.weekly,
68000.00
1647936000000)
#2
SalesData(
John Lohn,
TimePeriod.weekly,
{
1646125200000: 45600.00,
1646730000000: 50000.00,
1647331200000: 65000.00,
1647936000000: 68000.00,
}