优快云:
先讲讲bridge吧。bridge就如大家所说,抽象和实现的分离,相当于提供了灵魂和肉体的分离。没有这个分离,猪的灵魂永远投生到猪的肉体中,猴子的灵魂永远投生到猴子的肉体中,有了这个分离,猪有可能投生为猴子,猴子有可能投生为猪。
如何与abstract factory相结合呢?很简单,这些肉体需要创建,这就需要创建模式。为什么需要abstract factory这种创建模式呢?考虑这样一种情形:有亚洲猪、亚洲猴子,有非洲猪和非洲猴子。这样使用abstract factory就仅需要提供一种猪工厂、一种猴子工厂,就可负责所有不同的猪、猴子的创建。
在Java实现GUI控件的跨平台时,使用了上面的技术。你写一个AWT的程序,里面有命令按键,文字框等。你的程序操控它们的属性和行为,可是你操控的是一种抽象的控件,就好比是猪、猴子的灵魂一样。这些抽象控件必须在不同的操作系统中投生为猪和猴子的肉体才行,这不同的操作系统就好比亚洲、非洲一样,属于不同大洲的动物都有所不同。
bridge架构实现了控件灵魂、肉体的分离,Abstract Factory负责这些肉体在不同操作环境中的创建。
两个阐述Bridge的地方