- 浏览: 18322 次
- 性别:
- 来自: 西安
最新评论
桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦.
Lock.java
package com.flyingh.ilock; public interface Lock { void lock(); void unlock(); }
LockA.java
package com.flyingh.lock; import com.flyingh.ilock.Lock; public class LockA implements Lock { @Override public void lock() { // TODO Auto-generated method stub System.out.println("LockA is locked!"); } @Override public void unlock() { // TODO Auto-generated method stub System.out.println("lockA is unlocked!"); } }
LockB.java
package com.flyingh.lock; import com.flyingh.ilock.Lock; public class LockB implements Lock { @Override public void lock() { // TODO Auto-generated method stub System.out.println("LockB is locked!"); } @Override public void unlock() { // TODO Auto-generated method stub System.out.println("LockB is unlocked!"); } }
Key.java
package com.flyingh.ikey; public interface Key { void openLock(); void closeLock(); }
KeyA.java
package com.flyingh.key; import com.flyingh.ikey.Key; import com.flyingh.ilock.Lock; public class KeyA implements Key { private Lock lock; public KeyA(Lock lock) { super(); this.lock = lock; } @Override public void openLock() { // TODO Auto-generated method stub System.out.println("use KeyA to openLock"); lock.unlock(); } @Override public void closeLock() { // TODO Auto-generated method stub System.out.println("use KeyA to closeLock"); lock.lock(); } }
KeyB.java
package com.flyingh.key; import com.flyingh.ikey.Key; import com.flyingh.ilock.Lock; public class KeyB implements Key { private Lock lock; public KeyB(Lock lock) { super(); this.lock = lock; } @Override public void openLock() { // TODO Auto-generated method stub System.out.println("use KeyB to openLock"); lock.unlock(); } @Override public void closeLock() { // TODO Auto-generated method stub System.out.println("use KeyB to closeLock"); lock.lock(); } }
Client.java
package com.flyingh.client; import com.flyingh.ikey.Key; import com.flyingh.ilock.Lock; import com.flyingh.key.KeyA; import com.flyingh.key.KeyB; import com.flyingh.lock.LockA; import com.flyingh.lock.LockB; public class Client { public static void main(String[] args) { Lock lockA = new LockA(); Key keyA = new KeyA(lockA); keyA.openLock(); keyA.closeLock(); System.out.println("*************"); Lock lockB = new LockB(); Key keyB = new KeyB(lockB); keyB.openLock(); keyB.closeLock(); System.out.println("*************"); Key key = new KeyA(new LockB()); key.openLock(); key.closeLock(); } }
程序运行结果如下:
use KeyA to openLock lockA is unlocked! use KeyA to closeLock LockA is locked! ************* use KeyB to openLock LockB is unlocked! use KeyB to closeLock LockB is locked! ************* use KeyA to openLock LockB is unlocked! use KeyA to closeLock LockB is locked!
发表评论
文章已被作者锁定,不允许评论。
-
Interpreter
2011-11-24 21:19 839Interpreter Pattern:其意图是给定一个语言, ... -
Visitor
2011-11-24 17:37 659Visitor Pattern:表示一个作用于某对象结构中的各 ... -
Mediator
2011-11-24 16:22 663Mediator Pattern: 用一 ... -
Prototype
2011-11-24 11:32 605Prototype Pattern:就是通过复制现在已经存在的 ... -
Memento
2011-11-23 21:56 685Memento Pattern:在不破坏封闭的前提下,捕获一个 ... -
Flyweight
2011-11-23 18:38 651享元模式以共享的方式高效地支持大量的细粒度对象. 1).Fl ... -
Builder
2011-11-22 16:38 763Builder Pattern:可以将一个产品的内部表象与产品 ... -
Chain Of Responsibility
2011-11-21 23:05 658Chain Of Responsibility Pattern ... -
Abstract Factory
2011-11-21 22:00 644下面以Mac和PC的CPU和RAM为例,代码如下: Cpu. ... -
Proxy
2011-11-18 18:47 661Proxy Pattern:对其他对象提供一种代理以控制对这个 ... -
State
2011-11-18 15:57 678State Pattern:当一个对象的内在状态改变时允许改变 ... -
Composite
2011-11-17 17:09 795Composite Pattern:意图是将对象组合成树形结构 ... -
Iterator
2011-11-16 16:56 891Iterator Pattern:其意图是提供一种方法顺序访问 ... -
Template Method
2011-11-16 11:43 661模板方法模式:在一个方法中定义一个算法的骨架,而将一些实 ... -
Facade
2011-11-15 23:00 598Facade Pattern:为子系统中的各类(或结构与方法) ... -
Adapter
2011-11-15 21:43 632Adapter Pattern:将一个类的接口,转换成客户所期 ... -
Command
2011-11-14 23:06 5741).下面以Boss和Clerk为例: Clerk.java ... -
Factory Method
2011-11-13 20:44 595Simple Factory: 以Fruit为例,以下是实现 ... -
Decorator
2011-11-12 23:09 572装饰者可以在所委托被装饰者的行为之前与/或之后,加上自己的 ... -
Observer
2011-11-12 21:30 601观 察 者 模 式 定义了对象之间的一对多依赖,这样一来 ...
相关推荐
《Rizom Bridge for Maya:连接创意与技术的桥梁》 在数字艺术和动画领域,Maya是一款广泛使用的三维建模、动画、仿真和渲染软件,由Autodesk公司开发。而Rizom Bridge for Maya则是一款专为Maya设计的扩展工具,它...
【B4A-Bridge2.08汉化版】是一款专为B4A(Basic4Android)开发者设计的工具,它极大地简化了手机无线网络和蓝牙连接的开发过程。这款汉化版本使得中国用户能够更加方便地理解和使用,避免了语言障碍带来的困扰。 B4...
1. **安装JavaBridge.jar和Java.inc**:首先确保你的系统中已经安装了Java运行环境。然后将JavaBridge.jar和Java.inc文件放入项目的合适目录。 2. **启动Java Bridge服务器**:通过Java命令行启动JavaBridge.jar,...
Avalon-MM Pipeline Bridge是Qsys系统中一种重要的互联组件,用于优化基于Avalon-MM接口的SoC(System-on-a-Chip)设计中的数据传输性能。Avalon-MM是Altera公司(现已被Intel收购)开发的一种内存映射协议,广泛...
AXI Bridge for PCI Express Gen3 Subsystem v3.0是基于Vivado Design Suite的IP核,旨在提供PCI Express Gen3接口的AXI桥接解决方案。下面是该IP核心的详细知识点总结: 一、AXI Bridge for PCI Express Gen3 ...
Quixel Bridge是一款强大的纹理和材质库管理工具,它与Unity集成,为游戏开发提供高质量的PBR(物理渲染)资源。这款桥接插件允许用户直接在Unity编辑器中访问和导入Quixel库中的丰富资源,极大地提升了游戏的视觉...
**网桥工具Bridge-Utils详解** 在容器技术领域,Docker是广泛应用的开源平台,它为开发者提供了构建、部署和运行应用程序的环境。在Docker的网络配置中,`bridge-utils`是一个至关重要的工具,它使得我们可以创建和...
### PCI Express to PCI Bridge Specification,rev1.0 #### 概述 《PCI Express to PCI Bridge Specification,rev1.0》是一份详细介绍了如何在PCI Express(PCIe)与传统PCI或PCI-X总线之间建立桥接的标准文档。这...
《桥接工具——bridge-utils-1.4的深度解析》 在信息技术领域,网络设备的配置和管理是一项至关重要的任务,特别是在进行网络测试和实验环境中。桥接工具(Bridge Utilities)是一个不可或缺的实用程序,它使得创建...
Quickly bridge SDI inputs and outputs to video and synchronization signals that can then be used with the Xilinx video to/from AXI4-Stream cores The LogiCORE? IP SDI Tx and RX Video Bridge cores are ...
Linux网桥程序,如"bridge-utils-1.4",是Linux操作系统中用于网络设备桥接的重要工具。它允许用户将多个网络接口(如以太网卡)连接在一起,形成一个逻辑上的单一网络接口,从而实现不同网络之间的通信或者创建虚拟...
### Linux下的虚拟Bridge实现 #### 一、Bridge概念与功能 **Bridge**(桥接)是一种在二层网络中提供连接服务的技术。在Linux环境下,虚拟Bridge作为一种虚拟网络设备,可以将多个物理或虚拟网络接口汇聚在一起,...
赠送jar包:flink-table-api-java-bridge_2.11-1.12.7.jar; 赠送原API文档:flink-table-api-java-bridge_2.11-1.12.7-javadoc.jar; 赠送源代码:flink-table-api-java-bridge_2.11-1.12.7-sources.jar; 赠送...
start javaw -jar JavaBridge.jar 保存后,双击启动 会有一个提示框选择vmbridge port 默认8080,直接点ok就行了 5.在/demo/下新建test.php内容如下: require_once ( "java/Java.inc" ); header( "content-type:...
1. **JavaBridge.jar**: JavaBridge.jar是PHP/Java Bridge的核心组件,它提供了Java和PHP之间的接口。这个库包含了一系列的类和方法,用于在PHP脚本和Java对象之间建立连接。通过这个桥接器,PHP可以调用Java类和...
赠送jar包:flink-table-api-java-bridge_2.12-1.14.3.jar; 赠送原API文档:flink-table-api-java-bridge_2.12-1.14.3-javadoc.jar; 赠送源代码:flink-table-api-java-bridge_2.12-1.14.3-sources.jar; 赠送...
【标题】:“b4a_bridge.apk.rar”指的是一个压缩包文件,其主要包含的是一个名为“b4a_bridge.apk”的应用程序。这个文件是专为Basic4Android(B4A)开发平台设计的,用于远程调试模式。 【基本概念】: 1. **...
【Mame模拟器游戏音乐播放器Bridge M1详解】 Mame,全称为 Multiple Arcade Machine Emulator,是一款强大的多平台街机游戏模拟器,它能够复现各种经典街机游戏的运行环境,使得用户可以在个人电脑上体验到过去那些...