几种设计模式的理解

1.面向接口编程

2.门面模式

3.动态代理
1).接口对接,接口实现类(被代理实现类)
2).动态代理的实现类。
3).获取动态代理实现类对象实例,参数是被代理实现类
InvocationHandler handler = new BookProxyHandler(bookProxy);
4).获取动态代理实现类的代理Proxy对象实例。(可以在反射方法前后加代码,实现AOP或者日志记录等)
proxy = (BookProxy) Proxy.newProxyInstance(
loader, interfaces, handler);
5).利用Proxy调用动态实现类的方法执行操作。
proxy.addBook();
因为动态实现类和被代理实现类具有同样的方法,调用动态实现类的方法,通过方法名的参数传递,实现调用被代理实现类的方法并能进行提前或者结束前的处理,
这就为日志打印和AOP做好了技术储备。

public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("before......");
Object result = method.invoke(this.obj, args);
System.out.println("after.......");
return result;
}

4.工厂模式

原文地址:https://www.cnblogs.com/limingxian537423/p/7610579.html