设计模式
葵续浅笑
争取每天都有进步!
展开
-
从代理模式再出发!Proxy.newProxyInstance的秘密
上一节简单介绍了一下ClassLoader,我们知道,在我们用Proxy.newProxyInstance实现动态代理的时候,有三个参数,第一个便是classloader,这一篇文章就是简单看一下Proxy.newProxyInstance是如何实现动态代理的,因为我们后面可以以此为参考,实现自己的动态代理工具。public static Object newProxyInstance(ClassL原创 2017-09-24 21:43:06 · 38485 阅读 · 8 评论 -
从代理模式再出发!ClassLoader初探
前面几篇文章或多或少涉及到了代理模式的方方面面,从静态代理到动态代理的介绍使用,到mybaties对代理模式的实际运用,我们会想到代理模式再深一层是什么?我们只会用jdkproxy,但是在java语言的视角中,代理模式又是怎么运行的? 这个系列文章将从代理模式再出发!探讨跟代理相关的classloader,jvm字节码等概念,最终的目标是实现一个自己的代理框架。这些文章不是面面俱到的大谈jvm,cl原创 2017-09-18 16:37:58 · 2336 阅读 · 5 评论 -
代理模式的实际运用-以mybatis拦截器实现原理为例
之前在写mybatis拦截器的时候,因为不懂原理,琢磨了很久,不知道怎么写,在网上找了很多资料,才知道mybatis的拦截器主要还是通过代理实现的,而且我在之前的博文中刚好学习了代理模式。更精细的是,在mybatis对代理的应用上,不管是封装易用性,减少代码耦合度上,都可以让我之前写的代理模式demo进一步改进,也让我加深了对代理模式的理解。之前代理模式博文地址:http://blog.csdn.n原创 2017-08-16 09:52:49 · 1212 阅读 · 0 评论 -
java设计模式之代理模式(动态代理和静态代理)
代理的含义在于 代替原对象做更多的事情,而不破坏原代码的代码结构。代理也分静态代理 和 动态代理,我们先以简单的静态代理为例子。静态代理:定义一个接口package designmode.代理模式;public interface Sourceable { public void method();}被代理的对象,它实现了 Sourceable 接口/** * 被代理对象 * @au原创 2017-07-10 18:23:41 · 981 阅读 · 2 评论 -
java设计模式之责任链模式
自从看完《spring实战》,最近在学习java设计模式,学到了责任链模式,责任链模式指每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。定义一个Handler接口,public interface Handler { public void operator(int receive);}定义一个抽象类 AbstractHandler pa原创 2016-08-30 09:44:09 · 447 阅读 · 0 评论 -
Java如何正确地写出单例模式
单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。懒汉式,线程不安全当被问到要实现一个单例模式时,很多人的第一反应是写出如下的代码,包括教科书上也是这样教我们的。转载 2016-01-12 10:19:04 · 385 阅读 · 0 评论