设计模式
一杯就醉1929
这个作者很懒,什么都没留下…
展开
-
反射 序列化 克隆对单例模式的破坏
本文主要总结一下单例模式,以及其他对象创建方式可能对单例模式的破坏和解决方式。 现在看一个问题:对象的创建方式有哪几种? 四种:new 、克隆、序列化、反射。原创 2016-04-10 15:03:52 · 5241 阅读 · 4 评论 -
spring IOC容器:控制反转
Martin经典的问题就是“哪些方面的控制被反转了”,他的答案是:依赖对象的获得被反转了。基于这个结论他创造了一个新的名字即依赖注入,(DI Dependency Injection)。原创 2016-05-14 17:25:53 · 528 阅读 · 0 评论 -
Spring AOP 原理分析 part1
AOP:面向切面编程,最重要的就是这个切面的定义。切面中包括通知和切点。通知定义的是具体的行为,具体要做什么,比如日志、权限检查等,有前置通知,后置通知等。行为在面向对象编程中,即指方法。那么切面自然对应为一个类。切入点就是这些方法所要执行的位置。原创 2016-07-04 22:41:00 · 1568 阅读 · 0 评论 -
Spring AOP 原理分析 2 动态代理
动态代理:这是一个常用设计模式。为什么需要代理,在现实生活中需要代理的情况很多,比如类似的助理职务等。在软件中,也有很多,比如代理服务器,在办公室上网一般都要经过代理服务器去访问外网,代理服务器中公司会做一些限制,比如一些购物网站不可以访问、流量限制等等。这就是代理的作用。在编程中,我们需要代理方法,这个方法可以帮我们做一些额外的工作比如日志、权限等。不同方法需要不同的代理方法,这就是动态代理。原创 2016-07-04 23:38:29 · 678 阅读 · 0 评论 -
Spring AOP 源码分析 part4 :拦截器的实现
Spring AOP的核心是动态代理,那么动态代理核心是什么呢? 动态代理有两个核心:1可以动态的生成代理对象;2在回调方法invoke中,我们做的一些额外的操作,这个也是可以是动态。 即动态的生成代理对象以及动态的执行额外的操作。原创 2016-07-07 00:06:25 · 1099 阅读 · 1 评论 -
模板方法模式
定义一个操作中的算法的骨架,而将一些步骤的实现延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。其中一开始不能理解的“延迟”一词,如果延迟实现了,那在没有实现之前怎么使用呢?在实际中情况,我们一般是直接使用子类,而不是使用父类。因此父类一般定义为抽象类。模板方法用来解决那些有多个不同实现方式的算法。Java中用到模板方法模式的一个地方就是,并发包中锁(同步组件)的原创 2017-07-19 23:27:12 · 305 阅读 · 0 评论