Fork me on GitHub
摘要:1. 简介 装饰器模式(Decorator Pattern):动态地给一个对象添加职责,就增加功能来说,装饰器比生成子类更灵活。 2. 示例 水果店需要给网上客户发货,除了包装之外,需要对特定水果包装加额外装饰,比如加防伪标志、加固、加急等额外功能,但在外部看来还是打包组件。 类图设计 水果包装接口 阅读全文
posted @ 2020-09-13 08:22 小猪爸爸 阅读(149) 评论(0) 推荐(0) 编辑
摘要:1. 简介 访问者模式(Visitor Pattern):表示一个作用在某对象结构中的元素的操作,它可以在不改变类的元素的前提下,定义作用于这些元素的新操作。这是《设计模式-可复用面向对象软件的基础》中的定义。换句通俗的话,就是类的结构元素不变,可以根据访问者重新定义元素的操作。 2. 示例 2.1 阅读全文
posted @ 2020-09-07 07:06 小猪爸爸 阅读(232) 评论(0) 推荐(0) 编辑
摘要:1. 简介 ASM是assemble英文的简称,中文名为汇编,官方地址https://asm.ow2.io/,下面是官方的一段英文简介: ASM is an all purpose Java bytecode manipulation and analysis framework. It can b 阅读全文
posted @ 2020-09-02 06:31 小猪爸爸 阅读(193) 评论(0) 推荐(0) 编辑
摘要:1. 图解 上图主要描述了Cglib动态代理的主要执行过程,下面做详细分析,以下源码使用的Cglib版本为3.2.12。 2. Enhancer源码分析 public Object create() { // 判断是否需要创建对象,false表示需要创建对象 classOnly = false; / 阅读全文
posted @ 2020-08-24 21:47 小猪爸爸 阅读(233) 评论(0) 推荐(1) 编辑
摘要:1. 图解 上图主要描述了JDK动态代理的执行过程,下面做详细分析。 2. Proxy源码分析 上一篇,在使用JDK动态代理的时候,借助于Proxy类,使用newProxyInstance静态方法,创建了动态代理对象,这个方法接收三个参数,分别是目标类的类加载器、目标类实现的接口数组、自定义的Inv 阅读全文
posted @ 2020-08-13 09:12 小猪爸爸 阅读(246) 评论(0) 推荐(3) 编辑
摘要:1. 简介 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问。简而言之,既能使被代理对象无入侵,又能附加代理自己的操作,使方法增强功能。 2. 图解 水果店代理销售海南芝麻蕉,此外还销售苹果、橘子等其他水果。 代理的主要实现技术与方法如下图所示,本篇主要讲静态代理 阅读全文
posted @ 2020-08-09 22:33 小猪爸爸 阅读(539) 评论(0) 推荐(2) 编辑
摘要:1. 简介 策略模式(strategy):定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。 2. 图解 商城搞多种优惠活动,顾客只能参与其中一种优惠算法。 3. 案例实现 类图 满200减20元; 首次购买减20元; 第二件打9折; 节日一律减5元. 代码实现如下,环境类 折扣接口类 满 阅读全文
posted @ 2020-05-06 23:18 小猪爸爸 阅读(232) 评论(0) 推荐(0) 编辑
摘要:![](https://img2020.cnblogs.com/blog/1765702/202004/1765702-20200425114823375-1514878726.png) 阅读全文
posted @ 2020-04-25 11:48 小猪爸爸 阅读(81) 评论(0) 推荐(0) 编辑
摘要:![](https://img2020.cnblogs.com/blog/1765702/202004/1765702-20200425114443317-51586375.png) 阅读全文
posted @ 2020-04-25 11:47 小猪爸爸 阅读(84) 评论(0) 推荐(0) 编辑
摘要:![](https://img2020.cnblogs.com/blog/1765702/202004/1765702-20200425114056657-727719487.png) 阅读全文
posted @ 2020-04-25 11:41 小猪爸爸 阅读(69) 评论(0) 推荐(0) 编辑