传说中的谷歌招聘委员会成员之一,从幕后走出来,教你学系统设计!


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
天天打游戏、照样领工资、还办H1B
这份工作你要不要?
把贵司招聘信息放这里
查看: 4553|回复: 23
收起左侧

Uber电面

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

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

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
之前以为会遇到算法题,没想到是一题OOD 不过还好是水题
设计一个EventListener要求实现register unregister 和 post 方法
写了10分钟就水过了. more info on 1point3acres.com
.鐣欏璁哄潧-涓浜-涓夊垎鍦

评分

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
lz是今天面的嘛,请问lz面的是什么组

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

使用道具 举报

 楼主| psychiatrichwj 发表于 2015-8-29 10:18:54 | 显示全部楼层
wenqiang88 发表于 2015-8-29 10:05
请问LZ能细讲一下实现吗?

就是一个HashMap<String, List<Event>>然后函数是这样的
. visit 1point3acres.com for more.
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);.1point3acres缃
}

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

使用道具 举报

wenqiang88 发表于 2015-8-29 10:30:49 | 显示全部楼层
psychiatrichwj 发表于 2015-8-29 10:18
就是一个HashMap然后函数是这样的
.鏈枃鍘熷垱鑷1point3acres璁哄潧
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.     }. From 1point 3acres bbs
  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. 鍥磋鎴戜滑@1point 3 acres
前台的还是后台的。。。。

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

使用道具 举报

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

  3. class Solution {
  4.   public static void main(String[] args) {. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  5.   }
  6. }
  7. . from: 1point3acres.com/bbs
  8. class EventListener {. From 1point 3acres bbs
  9.   private Map<String, List<Event>> map;
  10.   . visit 1point3acres.com for more.
  11.   public EventListener() {
  12.     map = new HashMap<String, List<Event>>();
  13.   }
  14.   
  15.   public void register(String eventName, Event event) {
  16.     if (map.containsKey(eventName)) {
  17.       map.get(eventName).add(event);
  18.     } else {
  19.       List<Event> events = new ArrayList<Event>();
  20.       events.add(event);
  21.       map.put(eventName, events);. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  22.     }
  23.   };
  24.   
  25.   public void unregister(String eventName, Event event) {
  26.     if (map.containsKey(eventName)) {
  27.       map.get(eventName).remove(event);. visit 1point3acres.com for more.
  28.     }. From 1point 3acres bbs
  29.   };
  30.   
  31.   public void postEvent(String eventName, Object Data) {
  32.     Event event = new Event();
  33.     event.doEvent(Data);
  34.     this.register(eventName, event);
  35.   };
  36. }. 鍥磋鎴戜滑@1point 3 acres

  37. class Event {
  38.   private Object data;
  39.   
  40.   public void doEvent(Object data) {
  41.     this.data = data;
  42.   };
  43. }.鐣欏璁哄潧-涓浜-涓夊垎鍦
复制代码
回复 支持 反对

使用道具 举报

 楼主| 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?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-9-27 04:12

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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