A接口实现类中a方法调用了c方法,B接口的实现类b方法也需调用A接口的实现类中的c方法,在java中如何实现?

1.情景展示

在实际开发过程中,往往会存在这样的情况:

在A接口的实现类a方法实现了某个功能,现在B接口的实现类b方法也需要实现此功能,两者大致相同。

为了提高代码的复用性,我们可以把A接口的实现类a方法的具体实现过程进行封装成c方法,供A、B两个接口的实现类调用。

2.具体分析

第一步:将共用的代码提取出来并封装成方法。

同类调用

第二步:由于该方法和调用方a方法在同一个实现类,所以直接调用即可。

接口调用

第一步:在B接口实现类中注入A接口的实现类。

用的是构造注入。

第二步:引用A接口实现类的c方法。

这时,你将发现无法直接调用。

怎么办?

3.解决方案

将A接口实现类的c方法变成A接口的方法。

这样就不再报错了。

说明:

在A接口的实现类中,a方法调用了c方法,属于内部调用:方法调方法。

而在B接口的实现类中,b方法调用了c方法,属于外部调用:B接口的b方法调A接口的c方法,是接口间的调用。

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

posted @ 2024-03-12 11:55  Marydon  阅读(33)  评论(0编辑  收藏  举报