设计模式之桥(bridge)

将抽象部分与它的实现部分分离,使之都可以独立的变化。

 

AbstractLogImpl 与 AbstractLog即构成日志与平台之间的桥梁,实现日志与平台的多种组合。
public class Bridge {
	// 日志
	abstract class AbstractLog {
		protected AbstractLogImpl abstractLogImpl;
		
		public void setAbstractLogImpl(AbstractLogImpl abstractLogImpl) {
			this.abstractLogImpl = abstractLogImpl;
		}

		public abstract void printLog();
	}

	class DbLog extends AbstractLog {
		public void printLog() {
			abstractLogImpl.runPlatform();
			System.out.println("dabase log...");
		}
	}

	class FileLog extends AbstractLog {
		public void printLog() {
			abstractLogImpl.runPlatform();
			System.out.println("file log...");
		}
	}

	// 平台
	abstract class AbstractLogImpl {
		abstract void runPlatform();
	}

	class Windows extends AbstractLogImpl {
		public void runPlatform() {
			System.out.println("run in windows");
		}
	}

	class Linux extends AbstractLogImpl {
		public void runPlatform() {
			System.out.println("run in linux");
		}
	}
	
	public static void main(String[] args){
		Bridge bridge = new Bridge();
		AbstractLog al = bridge.new DbLog();
		AbstractLogImpl ali = bridge.new Windows();
		al.setAbstractLogImpl(ali);
		//平台与日志组合windows与dblog 
		al.printLog();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值