首页 > 其他 > 详细

设计模式--Q&A

时间:2020-12-16 12:01:12      阅读:30      评论:0      收藏:0      [点我收藏+]

Q&A

书中总结的一些QA

详情

  1. 哪个模式最好?
    没有正确答案(【手动滑稽】)。评价模式的影响因素很多(现状、需求、限制等等)。但是如果你了解所有模式,你的选择就会很灵活。实际上,我们经常需要结果多种方式来满足需求
  2. 为什么我们应该使用设计模式?
    在实际的应用开发中,对于软件开发过程有很多的通用(可复用)的解决方案。它可以帮助我们避免不必要和琐碎的实现代码
  3. 命令模式和备忘录模式有什么区别?
    对于命令模式,所有的命令都被存储下来,但是备忘录模式只在请求的时候保存状态。通常,命令模式中,我们经常看到对于任何动作(命令)的撤销和重做操作。但是备忘录模式不需要
  4. facade模式和builder模式有什么区别?
    facade模式的目标是专门写一段代码来方便使用,它的抽象细节是开发者不需要了解的。builder模式将构建过程和不同的表现内容(representation)分离开(前面的代码中,Director调用的是相同的构造器,但是创建出了不同类型的机器)
  5. builder模式和策略模式有什么区别?它们的UML表达很类似
    首先我们必须要了解它们的目的。builder模式是一个创建模式,策略模式是一个行为模式。它们关注点不一样。在builder模式中我们通过同一种创建过程来创建不同类型的对象,但是在策略模式中,我们可以在运行时自由选择运行的算法
  6. 命令模式和interpreter模式有什么区别?
    命令模式中,命令基本上是一个对象,但是对于interpreter模式来说,命令是一条语句。通过后者,我们尝试使用简单的规则来计算出它的值。有时interpreter看起来很方便,但是如果语法规则复杂的话,构造一个interpreter本身就很麻烦,因为我们需要新的类去满足新的语法
  7. 责任链模式和观察者模式有什么区别?
    对于观察者模式,当主题改变,所有注册的观察者都会收到通知,但是在责任链模式中,我们的请求不一定会走到链尾,所以不是每个处理对象都会处理所有的请求
  8. mediator模式和观察者模式有什么区别?
    GoF提到了,这两个模式都是竞争模式。它们之间的区别是观察者模式是观察者和主题之间的交互(双方),而mediator模式是mediator在处理其它对象的信息交互(多方-中心化)。如果我们尝试理解交流信息的流动(flow),调停者模式更好
  9. 假设,你已经实现了interpreter模式,之后需要使用额外的方式来解释特殊类型的表达式,这里最适合使用的模式是什么?
    可以结合visitor模式,它不会影响你已经实现的grammar类
  10. 我们可以组合迭代器模式和组合模式吗?
    可以,要设计一个递归结构,这个组合很常见
  11. 哪个模式中一定会出现不透明的对象?
    备忘录模式中,备忘录本身是一个不透明对象,照看者是不允许在备忘录中做任何改变的
  12. 命令模式和责任链模式有什么区别?
    责任链模式中,每个请求在发往责任链之前都期望有一个节点可以完成这个请求。然而,我们不知道是哪个节点完成的。但是命令模式,这个请求会直接达到那个能处理它的对象
  13. 单例类和静态类的区别?
    使用单例类我们可以创建对象,这是主要的区别,这意味着我们可以在单例类上使用继承、多态的概念(静态类难以模拟(mock)和测试)(在Java中没办法覆写静态方法,但是这些方法在编译期就绑定了,所以一些情况下,包含静态方法的静态类可能比包含非静态方法的单例类表现出更好的性能)

设计模式--Q&A

原文:https://www.cnblogs.com/mouseGo/p/14143126.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!