请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

真实Interview的场景,该如何回答设计模式的问题

请问老师,真实面试场景中,该如何回答设计模式问题呢?如要在白板上写Java代码来阐述吗?

总觉得设计模式要通过代码来能讲清楚。

正在回答

1回答

首先我们要明确一个终极目标:不通过代码,把问题讲清楚,甚至让非专业的人听懂。

那设计模式的具体情况,就看这个模式的核心点和有难度的点在哪里。比如Decorator模式是变继承为组合,核心就是结构图,加上那句new LoggingRunnable(new CodingTask()).run()。Builder的核心是用户使用Builder后可以写出的代码,我们要用代码来阐述,不过不是Builder的实现,而是使用Builder的人的代码。

再举两个我课上暂时没有强调的模式的例子。

Command模式,核心就在于把一段逻辑和它的参数以及输入输出包装成一个对象,交由他人执行。我在最后一章中说到的线程池就用到了这个模式。需要写一行代码:executor.submit(task)来说清楚。(这个模式很常见,而且很容易理解)

Visitor模式,主要用于语法解析方面。核心就是通过编译器的能力,重构掉代码中swtich。这个从使用角度很简单,但实现上的技巧就是 void accept(Visitor v) { v.visit(this); } 从这个出发来解释为何我们重构掉了switch语句(这个模式使用场景比较有限,而且技巧性太强)

4 回复 有任何疑惑可以回复我~
  • 提问者 firjjg #1
    多谢老师在假期中还能帮忙答疑解惑!!万分感谢
    回复 有任何疑惑可以回复我~ 2017-10-03 06:04:41
  • 提问者 firjjg #2
    非常感谢!
    回复 有任何疑惑可以回复我~ 2017-10-07 19:57:44
  • ccmouse 回复 提问者 firjjg #3
    不客气,很高兴能帮到你(☆ω☆)
    回复 有任何疑惑可以回复我~ 2017-10-08 09:48:07
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信