桥接模式里到底哪个是抽象类接口,哪个是实现类接口,这两个接口有什么区别?

发布于 2022-09-30 23:06:21 字数 429 浏览 42 评论 0

image.png
关于这张图,我从网上查和书上查了很多资料,说法都不相同,

有的地方说Shape是实现类接口,Rectangele和Circle是对Shape接口的实现,说Drawing是对Shape的更高级抽象,所以Drawing是抽象类接口。

有的地方说Shape是抽象类接口,是对Rectangle和Circle的抽象,而Drawing是为具体实现画画的方法提供的接口,所以Drawing是实现类接口。

这个图到底应该怎么分析啊,每个类都是什么类啊,也查不到一个统一的说法,能查到的分析说法感觉都很含糊,大概能意会,但出现分歧时又无法确定。

PS:还有一点不明白的就是,抽象类我知道是个什么东西,但抽象类接口是个啥?网上书上都搜不到,反正大概能明白是什么意思,但也说不出来是什么东西。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

贱贱哒 2022-10-07 23:06:21

我觉得是你想得过于复杂了,桥接模式仅仅就是将类的部分功能抽象并独立出来,方便修改和维护而已。比如你这个类图,一个shape ,抽象图形,可能是矩形,也可以是圆形,抽象方法,画出它的过程draw。矩形有一套笔画方法,圆形也有一套笔画方法,他们不相同。所以把绘画的过程抽象成一个接口,让实现者自己去实现。shape 只负责draw。至于具体要怎么画,把它聚合进shape 就行了,让drawing 来完成。

这个网站有设计模式的介绍,我觉得非常不错。
https://refactoringguru.cn/de...

爱你不解释 2022-10-07 23:06:21

Drawing,Shape看箭头指向就知道谁大谁小啊

非要怀念 2022-10-07 23:06:21

看箭头方向不就可以知道了啊

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文