分享程序网
首页
  • java
微服务
微前端
环境搭建
数据库
设计模式
算法
软件
解决问题
链接
首页
  • java
微服务
微前端
环境搭建
数据库
设计模式
算法
软件
解决问题
链接
  • 创建模式

    • 单例模式
    • 工厂方法模式
    • 抽象工厂模式
    • 原型模式
    • 建造者模式
  • 结构模式

    • 适配器模式
    • 桥接模式
    • 组合模式
    • 装饰器模式
    • 门面模式
    • 享元模式
    • 代理模式
  • 行为模式

    • 责任链模式
    • 命令模式
    • 迭代器模式
    • 策略模式
    • 模板方法模式

适配器模式

适配器模式(Adapter Pattern)的定义如下: Convert the interface of a class into another interface clients expect.Adapter lets classes work together that couldn't otherwise because of incompatible interfaces.(将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。)

我们可以拿登录说明,有的人使用用户名和密码登录,有时候界面又需要第三方提供手机验证码登录。我们的用户名登录方式如下:

public interface UserService {

	public boolean login(String username, String password);
}

而短信服务接口如下:

public class MessageService {

	public int sendMessage(String phone) {
		//业务逻辑
		return 200;
	}
}

发现返回的结果不一样,传参也不一样,这时候创建一个接口进行适配

public class LoginAdapter extends MessageService implements UserService {

	@Override
	public boolean login(String username, String password) {
		if (password == null) {
			if(this.sendMessage(username) == 200) {
				return true;
			}
		}
		//业务逻辑
		//...
		return false;
	}

	@Override
	public int sendMessage(String phone) {
		return super.sendMessage(phone);
	}

}

我们可以重写用户名登录的业务代码,也可以通过初始化或者spring注入的方式引入原有逻辑,从而达到适配的目的。

Last Updated:
Contributors: clcheng
Next
桥接模式