设计模式之桥接模式

 

 

package com.zwy;
/*合成/聚合复用的原则(carp)尽量使用合成/聚合,今年不要使用类的继承.
 * 聚合表示一种弱的拥有关系,体现的是A对象可以包含B对象,但是B对象不是A对象的一部分,合成是一种强的
 * 拥有关系,体现了严格的部分和整体的关系.部分和整体的生命周期一样.
 * 注意L优先使用对象的合成/聚合将有助于你保持每个类被封装,并被集中在单个任务三,这样类和类的继承层次
 * 会保持较小的规模,并且不太可能会正常位不可控制的庞然大物.
 * 
 * 桥接模式:将抽象部分和他的实现部分分离,使他们都可以独立的变化.
 * 什么叫做抽象和他的实现分离:将抽象部分和他的实现部分分离,这并不是让抽象类和其派生类分离,因为这没有
 * 任何意义.实现是指,抽象类和他的派生类用来思想自己的对象.
 * 注意:
 * 思想系统可能多角度分类,每一种分类都有可能有变化,那么就把这种多角度分离出来让他们独立变化,减少它们之间的
 * 耦合.
 * 感觉就是一个类,有一个对象(拥有关系),这个对象使用基类定义的,而赋值的时候都使用基类的子类来赋值的.
 * */
public class BridgeTest {
	
	
	
	public static void main(String[] args) {
		Abstraction abstraction = new RefinedAbstraction();
		
		abstraction.setImplement(new  ConcreteImplementorA());
		abstraction.Operation();
		abstraction.setImplement(new  ConcreteImplementorB());
		abstraction.Operation();

	}

}

abstract class Implementor {
	public abstract void Operation();
}

class ConcreteImplementorA extends Implementor {
	public void Operation(){
		System.out.println(this.getClass().getName() + " opreatrion");
	}
}
class ConcreteImplementorB extends Implementor {
	public void Operation(){
		System.out.println(this.getClass().getName() + " opreatrion");
	}
}
class Abstraction {
	protected Implementor implement ;

	public void setImplement(Implementor implement) {
		this.implement = implement;
	}
	public void Operation() {
		implement.Operation();
	}
}

class RefinedAbstraction extends Abstraction{
	@Override
	public void Operation() {
		System.out.println(this.getClass().getName() +":");
		implement.Operation();
	}
}

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值