Select Page

Bridge

Bridge

Decouple an abstraction from its implementation so that the two can vary independently.

from the gang of the four

Source Code

/**  * Defines Abstraction interface. Stores reference to implementation.  *   * @role __Abstraction  */ public abstract class Abstraction { 	/** Reference to actual implementation */ 	private Implementor impl;  	/** 	 * @return implementation-in-action. 	 */ 	protected Implementor getImplementor() { 		return impl; 	}  	/** 	 * This sample operation delegates call to particular implementation 	 */ 	public void someOperation() { 		getImplementor().someOperationImpl(); 	} }  /**  * Concrete implementation  */  public class ConcreteImplementorA extends Implementor { 	/** @see patterns.gof.bridge.Implementor#someOperationImpl() */ 	public void someOperationImpl() { 		// provide implementation here 	} }  /**  * Concrete implementation  */  public class ConcreteImplementorB extends Implementor { 	/** @see patterns.gof.bridge.Implementor#someOperationImpl() */ 	public void someOperationImpl() { 		// provide implementation here 	} }  /**  * Defines interface for implementation classes. Is not oblidged to provide  * one-to-one correspondence to interface of Abstraction.  *   * @role __Implementor  */  public abstract class Implementor { 	/** Implement this method to provide implementation-specific behavior */ 	public abstract void someOperationImpl(); } 
0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments

Categories

0
Would love your thoughts, please comment.x
()
x