一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 3195|回复: 23
收起左侧

Uber电面

[复制链接] |试试Instant~ |关注本帖
psychiatrichwj 发表于 2015-8-29 07:51:19 | 显示全部楼层 |阅读模式

2015(7-9月) 码农类 硕士 全职@Uber - 内推 - 技术电面 |Passfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
之前以为会遇到算法题,没想到是一题OOD 不过还好是水题
设计一个EventListener要求实现register unregister 和 post 方法
写了10分钟就水过了

评分

1

查看全部评分

xujun 发表于 2015-8-29 08:07:45 | 显示全部楼层
答的很好诶~~学习了!!
回复 支持 反对

使用道具 举报

bluezebra 发表于 2015-8-29 08:11:27 | 显示全部楼层
楼上这回复是复制粘贴的么。。答的好在哪。。
回复 支持 反对

使用道具 举报

hulahu 发表于 2015-8-29 08:46:31 | 显示全部楼层
求楼主说说EventListener
回复 支持 反对

使用道具 举报

swly 发表于 2015-8-29 09:01:24 | 显示全部楼层
bluezebra 发表于 2015-8-29 08:11
楼上这回复是复制粘贴的么。。答的好在哪。。

10分钟就过了,不好说不过去
回复 支持 反对

使用道具 举报

yannan 发表于 2015-8-29 09:05:49 | 显示全部楼层
lz是今天面的嘛,请问lz面的是什么组
回复 支持 反对

使用道具 举报

wenqiang88 发表于 2015-8-29 10:05:33 | 显示全部楼层
请问LZ能细讲一下实现吗?
回复 支持 反对

使用道具 举报

 楼主| psychiatrichwj 发表于 2015-8-29 10:16:57 | 显示全部楼层
yannan 发表于 2015-8-29 09:05.1point3acres缃
lz是今天面的嘛,请问lz面的是什么组

嗯 今天面的 我也不知道是什么组。。。。
回复 支持 反对

使用道具 举报

 楼主| psychiatrichwj 发表于 2015-8-29 10:18:54 | 显示全部楼层
wenqiang88 发表于 2015-8-29 10:05
请问LZ能细讲一下实现吗?
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
就是一个HashMap<String, List<Event>>然后函数是这样的

public void register(String eventName, Event event) {};.鐣欏璁哄潧-涓浜-涓夊垎鍦
public void unregister(String eventName, Event event){};
public void postEvent(String eventName, Object Data){};

public class Event {
  public void doEvent(Object data);
}

就用HashMap去做就好了 很简单的。
回复 支持 反对

使用道具 举报

wenqiang88 发表于 2015-8-29 10:30:49 | 显示全部楼层
psychiatrichwj 发表于 2015-8-29 10:18
就是一个HashMap然后函数是这样的

public void register(String eventName, Event event) {};

多谢LZ指点,祝好运
回复 支持 反对

使用道具 举报

 楼主| psychiatrichwj 发表于 2015-8-29 10:56:01 | 显示全部楼层
hulahu 发表于 2015-8-29 08:46
求楼主说说EventListener

下面说了
回复 支持 反对

使用道具 举报

 楼主| psychiatrichwj 发表于 2015-8-29 10:56:37 | 显示全部楼层
wenqiang88 发表于 2015-8-29 10:30
多谢LZ指点,祝好运
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
thx!~~~~~
回复 支持 反对

使用道具 举报

mmliu 发表于 2015-8-31 07:28:51 | 显示全部楼层
为啥感觉一般都是在 Object 下注册 listener 呢,比如 android 里面的一个 button,可以注册 setOnClickListener 事件,button 被 click 之后,就会呼叫 clickListener,触发相应的注册事件。
  1. class Button{
  2.   Map<String, List<Listener>> listenerMap;

  3.   clicked(){
  4.     for(Listener listener : listenerMap.get("click")){
  5.         listener.clicked();
  6.     }. 鍥磋鎴戜滑@1point 3 acres
  7.   }
  8. }
复制代码
所以是在 Object 下记录 listener, 而非在 listener 下记录 event 事件
回复 支持 反对

使用道具 举报

jiebour 发表于 2015-8-31 08:24:27 | 显示全部楼层
前台的还是后台的。。。。
回复 支持 反对

使用道具 举报

 楼主| psychiatrichwj 发表于 2015-8-31 08:51:46 | 显示全部楼层
mmliu 发表于 2015-8-31 07:28 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
为啥感觉一般都是在 Object 下注册 listener 呢,比如 android 里面的一个 button,可以注册 setOnClickLis ...

对 我一开始也很疑惑 问他 event name 和 listener 的对应关系,但是她把要写的函数框架给好了 所以就没多想了
回复 支持 反对

使用道具 举报

 楼主| psychiatrichwj 发表于 2015-8-31 09:00:13 | 显示全部楼层
jiebour 发表于 2015-8-31 08:24. From 1point 3acres bbs
前台的还是后台的。。。。

不知道 面我的人是做 ios 的 但是我当时找学长内推的时候顺序是 mobile web devops 我也不知道最后推了啥 挺有可能是做 mobile 吧
回复 支持 反对

使用道具 举报

dobestdobest 发表于 2015-8-31 14:20:22 | 显示全部楼层
请问,是下面这个意思吗?
  1. import java.io.*;
  2. import java.util.*;

  3. class Solution {. from: 1point3acres.com/bbs
  4.   public static void main(String[] args) {
  5.   }
  6. }. 鍥磋鎴戜滑@1point 3 acres

  7. class EventListener {
  8.   private Map<String, List<Event>> map;. Waral 鍗氬鏈夋洿澶氭枃绔,
  9.   
  10.   public EventListener() {
  11.     map = new HashMap<String, List<Event>>();
  12.   }
  13.   
  14.   public void register(String eventName, Event event) {. more info on 1point3acres.com
  15.     if (map.containsKey(eventName)) {
  16.       map.get(eventName).add(event);. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  17.     } else {. visit 1point3acres.com for more.
  18.       List<Event> events = new ArrayList<Event>();
  19.       events.add(event);. From 1point 3acres bbs
  20.       map.put(eventName, events);
  21.     }
  22.   };. From 1point 3acres bbs
  23.   . visit 1point3acres.com for more.
  24.   public void unregister(String eventName, Event event) {
  25.     if (map.containsKey(eventName)) {
  26.       map.get(eventName).remove(event);
  27.     }
  28.   };. more info on 1point3acres.com
  29.   
  30.   public void postEvent(String eventName, Object Data) {
  31.     Event event = new Event();
  32.     event.doEvent(Data);
  33.     this.register(eventName, event);
  34.   };
  35. }

  36. class Event {
    .1point3acres缃
  37.   private Object data;
  38.   
  39.   public void doEvent(Object data) {. 1point3acres.com/bbs
  40.     this.data = data;
  41.   };
  42. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| psychiatrichwj 发表于 2015-9-1 03:15:33 | 显示全部楼层
dobestdobest 发表于 2015-8-31 14:20
请问,是下面这个意思吗?

差不多 要考虑输入的有效性 然后 post event 是指对所有该 event 的 listener 都 doEvent
回复 支持 反对

使用道具 举报

blackrose 发表于 2016-6-6 07:52:09 | 显示全部楼层
No Multithread concern?
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-8 20:49

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表