我被问到的一个问题是我有一个包含以下列的数据库表
pid - unique identifier
orderid - varchar(20)
documentid - int
documentpath - varchar(250)
currentLocation - varchar(250)
newlocation - varchar(250)
status - varchar(15)
Run Code Online (Sandbox Code Playgroud)
我必须编写ac#app将文件从currentlocation移动到newlocation并将状态列更新为"SUCCESS"或"FAILURE".
这是我的答案
使用linq创建所有记录的列表
创建一个将执行移动文件的命令对象
使用foreach,调用委托来移动文件 -
使用endinvoke捕获任何异常并相应地更新db
我被告知命令模式和代表不适合这里的法案 - 我很想思考并实施一个更有利的GoF模式.
不确定他们在寻找什么 - 在这个时代,候选人会保留很多关于头脑的信息,因为总有谷歌找到任何答案并提出解决方案.
我有点同意 Aaronaught 上面的评论。对于这样的问题,有时你可能会想得太多,并尝试做一些超出你实际需要做的事情。
也就是说,我想到的一个 GoF 模式是“迭代器”。在您的第一个声明中,您说您会将所有记录读入列表中。可能出现问题的一件事是,如果您有数百万条这样的记录。您可能希望以更连续的方式处理它们,而不是将整个列表读入内存。迭代器模式将使您能够迭代列表,而无需了解底层(数据库)存储/检索机制。迭代器的底层实现可以一次检索一条、十条或一百条记录,并根据请求将它们分发给业务逻辑。这也将提供一些测试好处,因为您可以使用不同类型的底层存储(例如内存列表)来测试其他“业务”逻辑,以便您的单元测试独立于数据库。
| 归档时间: |
|
| 查看次数: |
981 次 |
| 最近记录: |