说实话,第一次听到这个官方定义我的内心是崩溃的,好不容易初探端详的面向对象的思想直接在这一句话中毁灭殆尽,好吧,我承认,我花了很久才吃透了这个模式
Bridge模式即大名鼎鼎的桥接模式,在宝典《Gof》中的意图是如下定义的:将抽象与实现解耦,使它们可以独立地变化~~
在具体地聊这个问题之前,我们再来聊2个基本的概念:
解耦:即让各种事物相互独立地行事,或者至少明确地声明之间的关系
抽象:是指不同事物之间概念上的联系方式
对于抽象与实现,大多数人谈及此问题时之所以会迷糊是因为他们认为实现即抽象的构建,因此实现与抽象来说应当是相辅相成的关系,及抽象是实现的占位符,
何谈耦合与解耦~~~
实际则是我想错了,“这里”的实现所指即抽象类及其派生类用来实现自己所用的对象~~,(在没有理解Bridge之前即使这句话你绝壁还是蒙逼的)
不过如果你已经意识到了上面这句话与之前那句话之间的区别,别担心,其实你已经较之前跨出了历史性的一步。
桥接模式在《设计模式》解析中给出了极高的评价,被称作是最难理解的模式,但却也是一个极其符合设计模式2大原则的例子:“找出变化并封装之”和“优先使用对象聚集而不是类继承”。
应用设计模式并不是直接拿模板去拼装代码,最重要的是理解模式的意图与目的,知道模式所欲解决的问题本身是什么?这才是学习解决问题方法的正确姿势~~~
对于在Bridge模式所遇到的问题主要有如下2点:概念的抽象有变化;这些概念的实现方式存在变化。
如果举出一个例子的话相信会好理解很多~~:现在有2个打印工具程序,同时现在有N