桥接模式里到底哪个是抽象类接口,哪个是实现类接口,这两个接口有什么区别?
关于这张图,我从网上查和书上查了很多资料,说法都不相同,
有的地方说Shape是实现类接口,Rectangele和Circle是对Shape接口的实现,说Drawing是对Shape的更高级抽象,所以Drawing是抽象类接口。
有的地方说Shape是抽象类接口,是对Rectangle和Circle的抽象,而Drawing是为具体实现画画的方法提供的接口,所以Drawing是实现类接口。
这个图到底应该怎么分析啊,每个类都是什么类啊,也查不到一个统一的说法,能查到的分析说法感觉都很含糊,大概能意会,但出现分歧时又无法确定。
PS:还有一点不明白的就是,抽象类我知道是个什么东西,但抽象类接口是个啥?网上书上都搜不到,反正大概能明白是什么意思,但也说不出来是什么东西。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我觉得是你想得过于复杂了,桥接模式仅仅就是将类的部分功能抽象并独立出来,方便修改和维护而已。比如你这个类图,一个shape ,抽象图形,可能是矩形,也可以是圆形,抽象方法,画出它的过程draw。矩形有一套笔画方法,圆形也有一套笔画方法,他们不相同。所以把绘画的过程抽象成一个接口,让实现者自己去实现。shape 只负责draw。至于具体要怎么画,把它聚合进shape 就行了,让drawing 来完成。
这个网站有设计模式的介绍,我觉得非常不错。
https://refactoringguru.cn/de...
Drawing,Shape看箭头指向就知道谁大谁小啊
看箭头方向不就可以知道了啊