【发布时间】:2016-05-10 22:44:45
【问题描述】:
所以我不确定我的标题是否最准确,但我尽量给出最好的解释。
我最近在一次工作面试中被问到这个问题(或多或少,因为我不记得完整的问题。这是我的头顶):
您需要创建一个简单的 tcp 服务器,可以通过 puTTy(或任何其他客户端)访问。
进入后,你需要写:
登录(不管是什么用户名)。
登录后,您可以进行 3 项操作:
showDevices - 将返回设备列表(目前我们有台灯和空调) - 我们可以编写模拟对象。假设他们有一个数字 ID。
Switch
- 设置设备开启或关闭。 SetValue - 设置设备的范围值(空调温度)
重要的事情:
分离 - 分离逻辑层和通信层。我们现在使用 Telenat 服务器,但将来我们希望切换到 http 服务器。这个过程应该很简单。
可扩展性 - 我们目前有 4 个操作(登录、showDevices、Switch、SetValue) - 编写服务器以便其他程序员可以很容易地添加另一个操作。代码应该是不言自明的
作业可以用任何语言编写。我尝试用 C# 编写它,直到我被卡住并且无法继续。最近我更喜欢 Node js,并决定再试一次......所以我向你们寻求一些有用的指导来解决这个问题。
-
如何最好地将通信层和逻辑层分开?
-
我应该实施某种设计模式来更轻松地添加命令吗? (我查看了命令设计模式,但无法确定它是否适用于这种情况)
-
任何能够真正引导我走上正轨的事情(不告诉我具体要做什么)都会受到赞赏。
谢谢!
【问题讨论】:
标签: node.js design-patterns tcp dependency-injection