适配器模式(AdapterPattern)

基本介绍:

    将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
主要解决: 主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。


类适配器示例代码:

package org.brando;

/**
 * 
 * 类说明: 测试类
 * @author Brando 2018年3月29日 下午2:03:59
 */
public class Launcher {

	public static void main(String[] args) {
		
		Object obj = new Object();
		
		IDBHelper<Object> mysqlHelper = new MySQLHelper<Object>();
		mysqlHelper.add(obj);
		mysqlHelper.update(obj);
		mysqlHelper.delete(obj);
		
		IDBHelper<Object> redisHelper = new RedisHelper<Object>();
		redisHelper.add(obj);
		redisHelper.update(obj);
		redisHelper.delete(obj);
		
	}
	
}


package org.brando;

/**
 * 
 * 类说明: 数据库
 * @author Brando 2018年5月2日 上午11:04:51
 */
public interface IDBHelper<T> {
	
	/**
	 * 
	 * 方法说明: 添加.
	 * @author Brando 2018年5月2日 上午11:07:31
	 * @param t
	 */
	public void add(T t);
	
	/**
	 * 
	 * 方法说明: 修改
	 * @author Brando 2018年5月2日 上午11:07:59
	 * @param t
	 */
	public void update(T t);
	
	/**
	 * 
	 * 方法说明: 删除
	 * @author Brando 2018年5月2日 上午11:08:15
	 * @param t
	 */
	public void delete(T t);
	
}

package org.brando;

/**
 * 
 * 类说明: MYSQL数据库.
 * @author Brando 2018年5月2日 上午11:09:07
 */
public class MySQLHelper<T> implements IDBHelper<T> {

	@Override
	public void add(T t) {
		System.out.println("MySQL数据库-ADD");
	}

	@Override
	public void update(T t) {
		System.out.println("MySQL数据库-UPDATE");
	}

	@Override
	public void delete(T t) {
		System.out.println("MySQL数据库-DELETE");
	}
	
}

package org.brando;

/**
 * 
 * 类说明: Redis
 * @author Brando 2018年5月2日 上午11:04:51
 */
public interface IRedisHelper<T> {
	
	/**
	 * 
	 * 方法说明: 添加.
	 * @author Brando 2018年5月2日 上午11:07:31
	 * @param t
	 */
	public void redisAdd(T t);
	
	/**
	 * 
	 * 方法说明: 修改
	 * @author Brando 2018年5月2日 上午11:07:59
	 * @param t
	 */
	public void redisUpdate(T t);
	
	/**
	 * 
	 * 方法说明: 删除
	 * @author Brando 2018年5月2日 上午11:08:15
	 * @param t
	 */
	public void redisDelete(T t);
	
}

package org.brando;

/**
 * 
 * 类说明: RedisHelper实现类
 * @author Brando 2018年5月2日 上午11:09:07
 */
public class RedisObject<T> implements IRedisHelper<T> {

	@Override
	public void redisAdd(T t) {
		System.out.println("Redis-ADD");
	}

	@Override
	public void redisUpdate(T t) {
		System.out.println("Redis-UPDATE");
	}

	@Override
	public void redisDelete(T t) {
		System.out.println("Redis-DELETE");		
	}
	
}

package org.brando;

/**
 * 
 * 类说明: RedisHelper(适配器实现)
 * @author Brando 2018年5月2日 上午11:09:07
 */
public class RedisHelper<T> extends RedisObject<T> implements IDBHelper<T> {

	@Override
	public void add(T t) {
		this.redisAdd(t);
	}

	@Override
	public void update(T t) {
		this.redisUpdate(t);
	}

	@Override
	public void delete(T t) {
		this.redisDelete(t);
	}
	
}











猜你喜欢

转载自blog.csdn.net/lyq19870515/article/details/80164084