基本介绍:
将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
主要解决: 主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。
类适配器示例代码:
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); } }