12 2018 档案
摘要:举例: jdk自带动态代理 javaassit字节码操作库实现 CGLIB ASM底层操作 实际例子: 使用jdk自带动态代理 java.lang.reflect.Proxy 作用 动态生成代理类和对象 java.lang.reflectInvocationHander 可以通过invoke方法实现
阅读全文
摘要:核心作用: 通过代理,控制对对象的访问 可以详细控制某个对象的方法,在调用这个方法做前置处理,调用这个方法后做后置处理(AOP的微观实现) AOP(Aspect Oriented Programming) 面向切面编程的核心实现机制 核心角色: 抽象角色:定义代理角色和真实角色的公共对外方法 真实角
阅读全文
摘要:适用场景:旧系统的改造升级 实际场景:java.io.InputStreamReader(InputStream)等 1.一个被适配的类 2.客户端 3.适配器写法1 适配器写法2 UML图
阅读全文
摘要:通过new产生一个对象非常繁琐,可以使用原型模式 原型模式实现: ——Cloneable接口和clone方法 ——Prototype模式实现起来最困难的地方是实现内存的复制和操作,Java中提供了clone方法省了大部分事情 案例:多利羊的克隆 1.继承Cloneable接口 2.重写clone方法
阅读全文
摘要:在我们日常生活中,如构建一个飞船,一个手机,一栋建筑,都会有非常复杂的组装,这时候应该用到建造者模式 以建造一个飞船为例 案例:造小页飞船 1.飞船各部分元件 2.飞船实体用来组装 3.创造方法的接口 4.实现组件(小页飞船组件) 5.实体实现装配 6.客户端的串接(测试) UML结构图
阅读全文