博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
D0: design summary
阅读量:6336 次
发布时间:2019-06-22

本文共 7569 字,大约阅读时间需要 25 分钟。

设计电梯,停车场, 纸牌 和 动物

再来一个design的题

☆─────────────────────────────────────☆
  HNM ( ) 于 (Sun Jan 10 17:17:33 2010, 美东) 提到:
一个汽车工厂生产各种各样的车,比如卡车,乘客车等等
每辆车有不同特性,比如有的有天窗,有的四个门,有的两个门
现在让你设计一个测试车的程序,比如说,想测试电池,那么所有有电池的车都要被测试;
如果想测试天窗,那么所有有天窗的车都要被测试.
给出class,和主要function.
这个又是什么pattern之类的呢?
※ 来源:·BBS 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 8.12.]
☆─────────────────────────────────────☆
  asuran (少说空话,多做实事) 于 (Sun Jan 10 17:22:27 2010, 美东) 提到:
设计电梯,停车场, 纸牌 和 动物园, 这几个题比较经典, 也可以讨论一下
不过我觉得设计不应该从pattern 入手, 应该先从需求入手,分析client-server 的
接口
☆─────────────────────────────────────☆
  HNM ( ) 于 (Sun Jan 10 17:24:09 2010, 美东) 提到:
是是
牛人,那么20多个pattern,你觉得哪些比较重点? 
【 在 asuran (少说空话,多做实事) 的大作中提到: 】
: 设计电梯,停车场, 纸牌 和 动物园, 这几个题比较经典, 也可以讨论一下
: 不过我觉得设计不应该从pattern 入手, 应该先从需求入手,分析client-server 的
: 接口
☆─────────────────────────────────────☆
  asuran (少说空话,多做实事) 于 (Sun Jan 10 17:38:36 2010, 美东) 提到:
我觉得gowii这方面比较牛,我的一点体会:
创建者模式用的最多的是factory method, singleton
结构模式用的最多的是proxy, adapter, facade
行为模式中observer, command, state, strategy, template method 用的最多
面试我倒不是很清楚
不过我觉得最难的pattern是visitor.
还有一个非常重要的pattern就是 MVC,这个非常经典,要实现出来也是很困难的
另外实现上proxy, adapter 和 decorator 很像。
目的而言template method 和 strategy 很像。
我觉得设计模式的种类划分, 是根据目的划分的, 就是design pattern中每个
pattern章节的第一句话, 如果上手就看实现的话,会很乱。
不过这些都是做项目的体会, 和面试关系不是很大。
【 在 HNM ( ) 的大作中提到: 】
: 是是
: 牛人,那么20多个pattern,你觉得哪些比较重点? 
☆─────────────────────────────────────☆
  HNM ( ) 于 (Sun Jan 10 17:58:46 2010, 美东) 提到:
谢谢.
存了.
你有没有总结过像动物园,电梯停车场这种题?
【 在 asuran (少说空话,多做实事) 的大作中提到: 】
: 我觉得gowii这方面比较牛,我的一点体会:
: 创建者模式用的最多的是factory method, singleton
: 结构模式用的最多的是proxy, adapter, facade
: 行为模式中observer, command, state, strategy, template method 用的最多
: 面试我倒不是很清楚
: 不过我觉得最难的pattern是visitor.
: 还有一个非常重要的pattern就是 MVC,这个非常经典,要实现出来也是很困难的
: 另外实现上proxy, adapter 和 decorator 很像。
: 目的而言template method 和 strategy 很像。
: 我觉得设计模式的种类划分, 是根据目的划分的, 就是design pattern中每个
: ...................
☆─────────────────────────────────────☆
  asuran (silence) 于 (Sun Jan 10 18:05:47 2010, 美东) 提到:
没有。我最近也打算看看类似的问题
一般面试的时候给的requirement都不多, 大都需要自己问, 不能光靠假设来设计。
设计类的问题最好能大家一起讨论
网上copy来的
How would you model a parking lot? 
What to look for? 
Expected answer: A parking lot is (at least conceptually) a container for 
objects of type vehicle - vehicle may be subclassed for different kinds of 
vehicles: trucks, motorcycles, cars, ... - Important concepts: container, 
inheritance! 
Does the candidate jump to conclusions as to what the parking lot is 
supposed to do? 
Does the candidate approach this problem in an object-oriented way or in a 
data-driven or functional way? 
After the first general stab, the candidate should ask for additional 
requirements: what is the parking lot supposed to do, how is it to be used. 
Does the candidate offer possible ways that it might be used (in a fitting 
problem, in a real-time control system, in a billing problem, for instance) 
Comments about implementation issues are generally inappropriate, unless the
specific use of the parking lot has been established! 
Follow-up question: What functionality would be abstracted/encapsulated in 
the parking lot? Expected answer: size or capacity, occupancy, even which 
slots are filled. Anything else depends on the specific usage! 
Advanced follow-up question: where should the responsibility to to park a 
vehicle? ParkingLot.park( Vehicle ) or Vehicle.park( ParkingLot )? Reason 
for choice? Introduce Meilir Page-Jones example: unmilk the cow, or uncow 
the milk? Therefore: Introduce parking mgr (Can the candidate name an 
applicable Pattern? Mediator!) 
Benefits: 
less smart objects: more reusable 
less coupling (otherwise cars need to know about parking lot and vv) 
Single pt of control 
Better conceptual modeling!!!
【 在 HNM ( ) 的大作中提到: 】
: 谢谢.
: 存了.
: 你有没有总结过像动物园,电梯停车场这种题?
☆─────────────────────────────────────☆
  HNM ( ) 于 (Sun Jan 10 18:09:08 2010, 美东) 提到:
这个哪拷的?说的还挺有道理的.
【 在 asuran (silence) 的大作中提到: 】
: 没有。我最近也打算看看类似的问题
: 一般面试的时候给的requirement都不多, 大都需要自己问, 不能光靠假设来设计。
: 设计类的问题最好能大家一起讨论
: 网上copy来的
: How would you model a parking lot? 
: What to look for? 
: Expected answer: A parking lot is (at least conceptually) a container for 
: objects of type vehicle - vehicle may be subclassed for different kinds of 
: vehicles: trucks, motorcycles, cars, ... - Important concepts: container, 
: inheritance! 
: ...................
☆─────────────────────────────────────☆
  asuran (silence) 于 (Sun Jan 10 18:14:22 2010, 美东) 提到:
google来的。。
☆─────────────────────────────────────☆
  krone (krone) 于 (Sun Jan 10 21:30:26 2010, 美东) 提到:
看了设计也是你的强项!
顶!
【 在 asuran (少说空话,多做实事) 的大作中提到: 】
: 我觉得gowii这方面比较牛,我的一点体会:
: 创建者模式用的最多的是factory method, singleton
: 结构模式用的最多的是proxy, adapter, facade
: 行为模式中observer, command, state, strategy, template method 用的最多
: 面试我倒不是很清楚
: 不过我觉得最难的pattern是visitor.
: 还有一个非常重要的pattern就是 MVC,这个非常经典,要实现出来也是很困难的
: 另外实现上proxy, adapter 和 decorator 很像。
: 目的而言template method 和 strategy 很像。
: 我觉得设计模式的种类划分, 是根据目的划分的, 就是design pattern中每个
: ...................
☆─────────────────────────────────────☆
  goWii (wii) 于 (Tue Jan 12 14:58:21 2010, 美东) 提到:
VISITOR的本质实际上是double dispach,实际应用的很少,因为其紧耦合。。。
【 在 asuran (少说空话,多做实事) 的大作中提到: 】
: 我觉得gowii这方面比较牛,我的一点体会:
: 创建者模式用的最多的是factory method, singleton
: 结构模式用的最多的是proxy, adapter, facade
: 行为模式中observer, command, state, strategy, template method 用的最多
: 面试我倒不是很清楚
: 不过我觉得最难的pattern是visitor.
: 还有一个非常重要的pattern就是 MVC,这个非常经典,要实现出来也是很困难的
: 另外实现上proxy, adapter 和 decorator 很像。
: 目的而言template method 和 strategy 很像。
: 我觉得设计模式的种类划分, 是根据目的划分的, 就是design pattern中每个
: ...................
☆─────────────────────────────────────☆
  goWii (wii) 于 (Tue Jan 12 15:02:22 2010, 美东) 提到:
VISITOR
例子WIKI上有
【 在 HNM ( ) 的大作中提到: 】
: 一个汽车工厂生产各种各样的车,比如卡车,乘客车等等
: 每辆车有不同特性,比如有的有天窗,有的四个门,有的两个门
: 现在让你设计一个测试车的程序,比如说,想测试电池,那么所有有电池的车都要被测
试;
: 如果想测试天窗,那么所有有天窗的车都要被测试.
: 给出class,和主要function.
: 这个又是什么pattern之类的呢?
: ※ 来源:·BBS 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 
8.12.]
☆─────────────────────────────────────☆
  mitbbs59 (bEQi) 于 (Tue Jan 12 15:25:51 2010, 美东) 提到:
我早就想请教了,这些题好多公司都喜欢问了,
不过没看到什么全面的答案,大家是该好好讨论一下
【 在 asuran (少说空话,多做实事) 的大作中提到: 】
: 设计电梯,停车场, 纸牌 和 动物园, 这几个题比较经典, 也可以讨论一下
: 不过我觉得设计不应该从pattern 入手, 应该先从需求入手,分析client-server 的
: 接口
☆─────────────────────────────────────☆
  adamchenya (yadwer) 于 (Tue Jan 12 15:30:37 2010, 美东) 提到:
你真是太强了。你是我见过design最强的。很多partten连听都没听说过。
【 在 asuran (silence) 的大作中提到: 】
: 没有。我最近也打算看看类似的问题
: 一般面试的时候给的requirement都不多, 大都需要自己问, 不能光靠假设来设计。
: 设计类的问题最好能大家一起讨论
: 网上copy来的
: How would you model a parking lot? 
: What to look for? 
: Expected answer: A parking lot is (at least conceptually) a container for 
: objects of type vehicle - vehicle may be subclassed for different kinds of 
: vehicles: trucks, motorcycles, cars, ... - Important concepts: container, 
: inheritance! 
: ...................
☆─────────────────────────────────────☆
  mvcfan (mvcfan) 于 (Thu Feb 11 17:02:45 2010, 美东) 提到:
我来一个汽车design的粗浅解法,大家讨论一下,共同进步。
附件是UML图。下面是Factory中Test方法的C#伪码:
// t should be one of the subclass of class Part
Void Test(Type t)
{
   foreach(var car in Cars)
   {
      foreach(var part in car.Parts)
      {
         if(part is t)
           part.test();
       }
    }
}
以上程序可以用Linq简化。由于手头没有编译器就不做了。
☆─────────────────────────────────────☆
  mvcfan (mvcfan) 于 (Thu Feb 11 17:52:24 2010, 美东) 提到:
【 在 mvcfan (mvcfan) 的大作中提到: 】
: 我来一个汽车design的粗浅解法,大家讨论一下,共同进步。
: 附件是UML图。下面是Factory中Test方法的C#伪码:
: // t should be one of the subclass of class Part
: Void Test(Type t)
: {
:    foreach(var car in Cars)
:    {
:       foreach(var part in car.Parts)
:       {
:          if(part is t)
: ...................
※ 来源:·BBS 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 63.98.]
此主题相关图片如下:

1.jpg
(32128 字节)
此主题相关图片如下:
1.jpg
(32128 字节)

 

转载于:https://www.cnblogs.com/xishibean/archive/2013/03/05/2951283.html

你可能感兴趣的文章
markdown编辑
查看>>
ASCII 在线转换器
查看>>
Linux内核同步:RCU
查看>>
Android逆向进阶——让你自由自在脱壳的热身运动(dex篇)
查看>>
Java设计模式之五大创建型模式(附实例和详解)
查看>>
60 Permutation Sequence
查看>>
主流的RPC框架有哪些
查看>>
Hive学习之路 (七)Hive的DDL操作
查看>>
[转]mysql使用关键字作为列名的处理方式
查看>>
awesome go library 库,推荐使用的golang库
查看>>
树形展示形式的论坛
查看>>
jdbcTemplate 调用存储过程。 入参 array 返回 cursor
查看>>
C++中的stack类、QT中的QStack类
查看>>
Linux常用基本命令[cp]
查看>>
CSS 相对|绝对(relative/absolute)定位系列(一)
查看>>
关于 Nginx 配置 WebSocket 400 问题
查看>>
Glide和Govendor安装和使用
查看>>
Java全角、半角字符的关系以及转换
查看>>
Dubbo和Zookeeper
查看>>
前端项目课程3 jquery1.8.3到1.11.1有了哪些新改变
查看>>