Java设计模式:适配器模式

绪论

其实很早以前就看过一些关于设计模式的文章,知道这个很重要,为此还写了一些demo,但是在实际开发过程中基本没有使用过。原因:不习惯,不记得,其实更多的是不明白什么情况下可以使用。所以导致自己的代码又臭又长,还会重复的造一些轮子,使代码看起来毫无亮点。
这次学习设计模式,更多的是分析理解,思考以往编程中哪些地方可以用到这些模式,从而可以使以后的自己在开发相同模块时可以使用。

理解

  1. 结构型模式。
  2. 主要作用:是在新接口和老接口之间进行适配。
  3. 优点:解耦、增加类的透明性和复用性、是把2个不同的东西转换到可以正常使用,适配器是去迎合目标对象与源对象。
  4. 过多使用,会让系统变得凌乱。
  5. 适配器不是在详细设计时添加的,而是解决正在服役的项目的问题。

代码

Computer.java

public interface Computer {
	void readSD(SDCard sd);
}

LegionComputer.java

public class LegionComputer implements Computer {
	@Override
	public void readSD(SDCard sd) {
		if (sd == null) {
			throw new NullPointerException("sd card is null");
		}
		sd.readSD();
	}
}

SDCard.java

public interface SDCard {
	void readSD();
}

SDCardImpl.java

public class SDCardImpl implements SDCard {
	@Override
	public void readSD() {
		System.out.println("读SD卡:哈哈");
	}
}

TFAdapterSD.java

public class TFAdapterSD implements SDCard {
	
	private TFCard tf;
	
	public TFAdapterSD(TFCard tf) {
		this.tf = tf;
	}

	@Override
	public void readSD() {
		System.out.println("转换");
		tf.readTF();
	}
}

TFCard.java

public interface TFCard {
	void readTF();
}

TFCardImpl.java

public class TFCardImpl implements TFCard {
	@Override
	public void readTF() {
		System.out.println("读TF卡:嘿嘿");
	}
}

Main.java

public class Main {

	public static void main(String[] args) {
		Computer computer = new LegionComputer();
		SDCard sd = new SDCardImpl();
		computer.readSD(sd);
		
		TFCard tf = new TFCardImpl();
		SDCard tfToSD = new TFAdapterSD(tf);
		computer.readSD(tfToSD);
	}
}

结果

在这里插入图片描述

上面例子就是说笔记本可以直接读取SD卡,还可以通过读卡器读取TF卡。

(若有什么错误,请留言指正,3Q)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值