【发布时间】:2010-01-12 11:21:36
【问题描述】:
想象以下模型:
- 一个表有很多行
- 一个行有很多单元格
以“面向对象的方式”处理这些类的更好接口是什么?
1 - 提供对属性 rows / cells 的访问(不一定公开底层数据结构,但创建例如类 RowCollection...)
my_table = new Table()
my_table.rows.add([1,2,3])
my_row = my_table.rows.get(0)
my_row.cells.get(0)
for(cell in my_row.cells) {}
...
2 - 或者直接在 Table 和 Row 类中提供方法
my_table = new Table()
my_table.add_row([1,2,3])
my_row = my_table.get_row(0)
my_row.get_cell(0)
for(cell in my_row.get_cells) {}
...
3 - 以上都不是...
【问题讨论】:
-
主要用例是添加、排序和迭代值
标签: language-agnostic oop encapsulation information-hiding