cregithar
2020-12-18 18:14
采纳率: 95.2%
浏览 7
已采纳

java代码的实现疑惑

//常看到有这样的写法
List<Object> list = new ArrayList<>();

ArrayList实现了List接口,可以说功能比List更多,应该会有自己的一些实现了,为什么还要把对象类型转到List呢?这样不会丢失一些ArrayList自己实现的功能吗?这样写有什么好处啊?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • qq_26276667 2020-12-18 22:08
    已采纳

    建议看下设计模式,就明白其中的原理了。

    依赖倒置原则

    定义:上层模块不应该依赖低层模块的实现,而应该依赖其抽象。

    问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。修改类A,会给程序带来不必要的风险。

    解决方案:将类A修改为依赖接口I,上层模块无需关心底层模块的接口实现细节。依赖倒置原则的核心就是要我们面向接口编程。

    依赖倒置原则需要注意:

    1) 低层模块提高的API使用抽象类或接口

    2) 变量的声明类型尽量是抽象类或接口

    已采纳该答案
    打赏 评论

相关推荐 更多相似问题