113)适配器模式和装饰器模式有什么区别?(答案)-达内培训负责整理
虽然适配器模式和装饰器模式的结构类似,但是每种模式的出现意图不同.适配器模式被用于桥接两个接口,而装饰模式的目的是在不修改类的情况下给类增加新的功能.
114)适配器模式和代理模式之前有什么不同?(答案)
这个问题与前面的类似,适配器模式和代理模式的区别在于他们的意图不同.由于适配器模式和代理模式都是封装真正执行动作的类,因此结构是一致的,但是适配器模式用于接口之间的转换,而代理模式则是增加一个额外的中间层,以便支持分配、控制或智能访问.
115)什么是模板方法模式?(答案)
模板方法提供算法的框架,你可以自己去配置或定义步骤.例如,你可以将排序算法看做是一个模板.它定义了排序的步骤,但是具体的比较,可以使用 Comparable 或者其语言中类似东西,具体策略由你去配置.列出算法概要的方法就是众所周知的模板方法.
116)什么时候使用访问者模式?(答案)
访问者模式用于解决在类的继承层次上增加操作,但是不直接与之关联.这种模式采用双派发的形式来增加中间层.
117)什么时候使用组合模式?(答案)
组合模式使用树结构来展示部分与整体继承关系.它允许客户端采用统一的形式来对待单个对象和对象容器.当你想要展示对象这种部分与整体的继承关系时采用组合模式.
118)继承和组合之间有什么不同?(答案)
虽然两种都可以实现代码复用,但是组合比继承共灵活,因为组合允许你在运行时选择不同的实现.用组合实现的代码也比继承测试起来更加简单.
119)描述 Java 中的重载和重写?(答案)
重载和重写都允许你用相同的名称来实现不同的功能,但是重载是编译时活动,而重写是运行时活动.你可以在同一个类中重载方法,但是只能在子类中重写方法.重写必须要有继承.
120)Java 中,嵌套公共静态类与顶级类有什么不同?(答案)
类的内部可以有多个嵌套公共静态类,但是一个 Java 源文件只能有一个顶级公共类,并且顶级公共类的名称与源文件名称必须一致.
121) OOP 中的 组合、聚合和关联有什么区别?(答案)
如果两个对象彼此有关系,就说他们是彼此相关联的.组合和聚合是面向对象中的两种形式的关联.组合是一种比聚合更强力的关联.组合中,一个对象是另一个的拥有者,而聚合则是指一个对象使用另一个对象.如果对象 A 是由对象 B 组合的,则 A 不存在的话,B一定不存在,但是如果 A 对象聚合了一个对象 B,则即使 A 不存在了,B 也可以单独存在.
122)给我一个符合开闭原则的设计模式的例子?(答案)
开闭原则要求你的代码对扩展开放,对修改关闭.这个意思就是说,如果你想增加一个新的功能,你可以很容易的在不改变已测试过的代码的前提下增加新的代码.有好几个设计模式是基于开闭原则的,如策略模式,如果你需要一个新的策略,只需要实现接口,增加配置,不需要改变核心逻辑.一个正在工作的例子是 Collections.sort() 方法,这就是基于策略模式,遵循开闭原则的,你不需为新的对象修改 sort() 方法,你需要做的仅仅是实现你自己的 Comparator 接口.
以上就是达内培训给大家做的内容详解,更多关于IT的学习,请继续关注达内培训