需要对我的面试问题提出想法 - .net,c#

uno*_*uno 9 .net c#

我被问到的一个问题是我有一个包含以下列的数据库表

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".

这是我的答案

  1. 使用linq创建所有记录的列表

  2. 创建一个将执行移动文件的命令对象

  3. 使用foreach,调用委托来移动文件 -

  4. 使用endinvoke捕获任何异常并相应地更新db

我被告知命令模式和代表不适合这里的法案 - 我很想思考并实施一个更有利的GoF模式.

不确定他们在寻找什么 - 在这个时代,候选人会保留很多关于头脑的信息,因为总有谷歌找到任何答案并提出解决方案.

And*_*ite 3

我有点同意 Aaronaught 上面的评论。对于这样的问题,有时你可能会想得太多,并尝试做一些超出你实际需要做的事情。

也就是说,我想到的一个 GoF 模式是“迭代器”。在您的第一个声明中,您说您会将所有记录读入列表中。可能出现问题的一件事是,如果您有数百万条这样的记录。您可能希望以更连续的方式处理它们,而不是将整个列表读入内存。迭代器模式将使您能够迭代列表,而无需了解底层(数据库)存储/检索机制。迭代器的底层实现可以一次检索一条、十条或一百条记录,并根据请求将它们分发给业务逻辑。这也将提供一些测试好处,因为您可以使用不同类型的底层存储(例如内存列表)来测试其他“业务”逻辑,以便您的单元测试独立于数据库。