虾皮面经中看到一道题:
如果要实现一个聊天室的逻辑,有 room 和 user 两个类,而 room 设置有一个门,而且有“主人的设定,只有主人才能开门和关门。请问开门和关门的方法,你会放到 room 类还是 user 类中美国服务器实现 ?为什么?
各位大佬,如果你面试时遇到会怎么回答。
我的想法是:
放在 room 类,room 类中保存房间主人,user 用户如果是主人可以开门或关门,本一菜鸡没看懂这题到底要考察啥?跪求各位大佬指点 讨论。
哈哈哈 我猜这是 chatbot 团队的面试官
room 类+1
room,因为门和 room 是一一对应的,是 room 的一种功能。而 room 相关的信息都应该封装在 room 类日,这样才能根据不同的 user 表现出不同的功能,不仅仅是门
比如说 room 加一个 owner 的属性,当 user 调用 room 时就比较下,根据结果走不同的分支
菜鸡一枚,说说我的看法,我也 get 不到想问什么,可能是对面向对象思想的考察,首先房间有门,门有开关的动作,这是与现实世界的对应,符合基本逻辑,房间有管理员,可以执行开关门的动作,谁是管理员谁就拥有开关门的权限。这样门和房间主人是关联关系,房间主人可以有一个也可以有多个。
如果门或者动作放到 User 上,一个人有多个门时,还得找这些门和对应房间的关系,一个门有多个主人时,啊,什么鬼