采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
请问老师,真实面试场景中,该如何回答设计模式问题呢?如要在白板上写Java代码来阐述吗?
总觉得设计模式要通过代码来能讲清楚。
首先我们要明确一个终极目标:不通过代码,把问题讲清楚,甚至让非专业的人听懂。
那设计模式的具体情况,就看这个模式的核心点和有难度的点在哪里。比如Decorator模式是变继承为组合,核心就是结构图,加上那句new LoggingRunnable(new CodingTask()).run()。Builder的核心是用户使用Builder后可以写出的代码,我们要用代码来阐述,不过不是Builder的实现,而是使用Builder的人的代码。
再举两个我课上暂时没有强调的模式的例子。
Command模式,核心就在于把一段逻辑和它的参数以及输入输出包装成一个对象,交由他人执行。我在最后一章中说到的线程池就用到了这个模式。需要写一行代码:executor.submit(task)来说清楚。(这个模式很常见,而且很容易理解)
Visitor模式,主要用于语法解析方面。核心就是通过编译器的能力,重构掉代码中swtich。这个从使用角度很简单,但实现上的技巧就是 void accept(Visitor v) { v.visit(this); } 从这个出发来解释为何我们重构掉了switch语句(这个模式使用场景比较有限,而且技巧性太强)
多谢老师在假期中还能帮忙答疑解惑!!万分感谢
非常感谢!
不客气,很高兴能帮到你(☆ω☆)
登录后可查看更多问答,登录/注册
为面试新手量身定制的Java面试尊享课,解锁“鲤鱼跃龙门”的妙招
1.2k 4
1.0k 9
1.1k 8
1.9k 7
1.3k 6