Bridge将抽象和行为划分开来,各自独立,可以动态结合变换.
随着社会的发展,交通要求便利,汽车成为交通的主要工具,有车可以加汽油,也可以加柴油.
public abstract class Car
{
public CarImp carImp;
public abstract void buyOil();
public CarImp getCarImp()
{
return carImp;
}
public void setCarImp()
{
this.carImp = SingletonCarImp.getInstance();
}
}
public interface CarImp
{
public void appendOil();
}
public class Truck extends Car
{
public Truck()
{
setCarImp();
}
public void buyOil()
{
carImp.appendOil();
}
}
public class SaloonCar extends Car
{
public SaloonCar()
{
setCarImp();
}
public void buyOil()
{
carImp.appendOil();
}
}
public class GasCarImp implements CarImp
{
public void appendOil()
{
System.out.println("Append gasoline for salooncar");
}
}
public class DieselOilCarImp implements CarImp
{
public void appendOil()
{
System.out.println("Append diesel oil for truck");
}
}
public class SingletonCarImp
{
private static CarImp carImp;
public SingletonCarImp(CarImp carImp)
{
this.carImp = carImp;
}
public static CarImp getInstance()
{
return carImp;
}
}
public class TestBridge
{
public static void main(String[] args)
{
SingletonCarImp singleton = new SingletonCarImp(new DieselOilCarImp());
Car truck = new Truck();
truck.buyOil();
Car saloonCar = new SaloonCar();
saloonCar.buyOil();
}
}
Bridge模式看上去和Strategy差不多,很容易让人混淆,我的理解:
Strategy模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类.把多种算法提供给一方来选择变换,更注重算法的变换.
Bridge将抽象和行为划分开来,各自独立,但能动态结合变换.两边都可以进行动态变换结合,为平衡状态.Bridge模式是Strategy模式的延伸.
不知道理解的对不对,请高人指点.
分享到:
相关推荐
"设计模式大全,带你全面认识设计模式"这个资源很可能是为了帮助初学者和有经验的开发者深入理解并掌握设计模式的精髓。 设计模式通常分为三大类:创建型、结构型和行为型模式。创建型模式主要关注对象的创建过程,...
设计模式之 Bridge(桥连) 将牛郎织女分开(本应在一起,分开他们,形成两个接口),在他们之间搭建一个桥(动态的结合) 设计模式之 Flyweight(共享元) 提供 Java运行性能,降低小而大量重复的类的开销. C. 行为模式 ...
从提供的文件信息中我们可以提取到的IT知识点主要集中在C++设计模式方面。具体的知识点可以分解为以下几点: ...同时,也能对学习设计模式的过程有一个更全面的认识,从而更好地掌握这些设计思想。
《深入浅出设计模式样章》是一本专为软件开发者准备的指南,旨在帮助读者理解和掌握设计模式这一核心编程概念...样章虽然只是全书的一部分,但已经足够让读者对设计模式有初步的认识,并激发他们进一步深入研究的兴趣。
装饰模式:装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案, 装饰模式 提供比继承更多的灵活性。动态给一个对象增加功能,这些功能可以再动态的撤消。增加由 一些基本功能的排列组合而产生...
而在讨论设计模式时,双分派的概念可以进一步提升对Visitor模式的认识。设计模式的重要性不言而喻,它们是软件设计中不可或缺的工具,能够使开发者更加高效地进行面向对象的分析和设计。 在本书的附录部分,作者...
通过对GoF的23种设计模式的学习和理解,我们可以深刻认识到这些模式对于提高软件质量和效率的重要性。每个模式都针对特定的问题提出了有效的解决方案,帮助我们更好地设计和构建高质量的软件系统。同时,通过实际的...
"设计模式优缺点及应用场景整理" 设计模式是软件开发中一种重要的概念,它可以帮助开发者更好地组织代码,提高代码的可维护性、可读性和可扩展性。本文总结了23种设计模式的优缺点和应用场景,旨在帮助开发者更好地...
通过对比分析,读者可以更清楚地认识到不同模式的适用场景及其优缺点,从而能够更加明智地选择合适的设计模式来解决特定问题。 #### 复合模式 (Composite Pattern) 复合模式允许将对象组织成树形结构来表示“部分-...
至于第14章则很快地浏览尚未介绍的设计模式,包括Bridge、Builder、Chain of Responsibility、Flyweight、Interpreter、Mediator、Memento、Prototype、Visitor。第1章还介绍了四个OO基本概念(抽象、封装、继承、...
这些设计模式的源码示例将帮助你深入理解每种模式的核心思想和应用场景,通过实际编码加深对设计模式原理的认识,提升软件开发的灵活性和可维护性。学习并熟练运用这些模式,将有助于你编写出更高质量的C#代码。
### Java常用的设计模式详解 #### 一、工厂模式(Factory) **工厂模式**是一种常用的创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们创建一个工厂类来负责创建产品类的对象。当系统需要创建...
在“pci-pci_bridge.pdf”文档中,可能会详细阐述PCI-PCI桥的架构、操作模式、电气特性、配置流程、中断处理机制以及如何在系统设计中有效地使用PCI-PCI桥等内容。这份文档对于硬件工程师、系统集成商和驱动程序...
类型 设计模式主要分为三类:创建型模式、结构型模式和行为型模式。 1. 创建型模式(Creational Patterns):如单例模式(Singleton)、工厂模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式...
通过以上内容,我们对“平行至MIPI CSI-2 TX桥接器”有了较为全面的认识,包括其设计原理、功能特点及应用场景等。这种技术的应用不仅能够提高数据传输速度,还能有效降低功耗,是现代移动设备中不可或缺的一部分。
3. 将抽象与实现相分离的设计模式是B(Bridge)。 4. 降低资源使用率的设计模式包括B(Singleton)和C(Flyweight)。 5. 多核处理器上,短临界区且不切换线程的同步机制最优选择是C(Semaphore)。 以上内容展示了...
BOPPPS模式是一种经过验证的教学设计模式,包括六个部分:导入(Bridge-in)、目标(Objective)、前测(Pre-assessment)、参与式学习(Participatory Learning)、后测(Post-assessment)和总结(Summary)。这种模式强调以...