1、装饰器模式:动态地给一个对象添加一些额外的职责。重点是调用者主动给目标对象动态新增功能
2、代理模式:为其他对象提供一种代理以控制对这个对象的访问。重点是调用者不用知道目标对象是什么,是怎么创建的,只需要告诉代理对象自己需要什么。
实现方式:
a、装饰器模式:
1、新增一个接口,接口就一个方法表示要向数据库插入数据
public interface DB { /** * 向数据库中插入一个记录 * @param value */ void insert(String value); }
2、新增一个实现类,表示向具体的MySql这个数据库中插入数据
/** * 模拟向MySql数据库中插入数据 */ public class MySqlDB implements DB { @Override public void insert(String value) { System.out.println(String.format("inset value(%s) into MySqlDB ",value)); } }
3、新增一个装饰器,表示在向数据库中插入数据的过程中提供事务的处理能力
/** * 模拟在往数据库中插入数据的时候开启事务功能 */ public class TranslationDB implements DB { DB db; public TranslationDB(DB db){ this.db=db; } @Override public void insert(String value) { System.out.println("打开事务"); db.insert(value);