Java面试题汇总

Java面试题(设计模式)

2020-02-26  本文已影响0人  我最酷_b537

88. 说一下你熟悉的设计模式?

参考:常用的设计模式汇总,超详细!

89. 简单工厂和抽象工厂有什么区别?

简单工厂模式:

这个模式本身很简单而且使用在业务较简单的情况下。一般用于小项目或者具体产品很少扩展的情况(这样工厂类才不用经常更改)。

它由三种角色组成:
来用类图来清晰的表示下的它们之间的关系:
image

抽象工厂模式:

先来认识下什么是产品族: 位于不同产品等级结构中,功能相关联的产品组成的家族。

image

图中的BmwCar和BenzCar就是两个产品树(产品层次结构);而如图所示的BenzSportsCar和BmwSportsCar就是一个产品族。他们都可以放到跑车家族中,因此功能有所关联。同理BmwBussinessCar和BenzBusinessCar也是一个产品族。

可以这么说,它和工厂方法模式的区别就在于需要创建对象的复杂程度上。而且抽象工厂模式是三个里面最为抽象、最具一般性的。抽象工厂模式的用意为:给客户端提供一个接口,可以创建多个产品族中的产品对象。

而且使用抽象工厂模式还要满足一下条件:
  1. 系统中有多个产品族,而系统一次只可能消费其中一族产品
  2. 同属于同一个产品族的产品以其使用。
来看看抽象工厂模式的各个角色(和工厂方法的如出一辙):

目录:2020最新Java面试题及答案汇总(上)
目录:2020最新Java面试题及答案汇总(下)

上一篇 下一篇

猜你喜欢

热点阅读