引言:

1、为什么抽象工厂中的抽象工厂要用接口?
2、抽象类和接口之间存在什么区别?
3、继承和实现之间的耦合关系大小?为什么?

从问题的深入,

我们来反过来解决这些问题:

3问:继承和实现之间的耦合关系大小?为什么?
在UML关系图中
接口VS抽象类

从上到下,他们之间的耦合关系越来越弱
为什么呢?

类继承了抽象类:子类就包含了父类所有的方法,不管他有没有真的重写(隐式继承),子类是完全可以替换父类的
PS:补充说明一下,这也正是设计模式中的里式替换原则:子类可以完全代替父类

类实现了接口:虽然一样都是必须要实现接口中的所有方法。但是相比于继承关系,接口可以实现多个,但是java中类只能继承一个。所以说如果对于拓展方面来说,可以在不需要原有接口的情况下,再让类实现一个接口即可。
对于抽象类,需要修改类中的代码。
这也就是为什么说继承之间的耦合性要比实现的强的原因。

2问抽象类和接口之间的区别?
回想之前上篇博客例子1:再看一些百科的图
接口VS抽象类
接口VS抽象类
1问: 根据上面的例子,也就能明白为什么抽象工厂设计模式中抽象工厂使用的是接口了:
耦合性较低
易于拓展

相关文章:

  • 2021-10-19
  • 2021-07-03
  • 2021-11-26
  • 2021-12-18
  • 2021-06-26
  • 2021-05-12
  • 2021-10-01
猜你喜欢
  • 2021-11-22
  • 2021-11-04
  • 2022-12-23
  • 2021-11-05
相关资源
相似解决方案