
设计模式
文章平均质量分 75
silk_bar
这个作者很懒,什么都没留下…
展开
-
【设计模式】建造者模式详解
建造者模式也叫生成器模式,具有封装性、易扩展等优势,其定义为:将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。 假定我们现在接到一个需求,要造出一辆奔驰,那么我们可以做如下设计: 首先,本着抽象原则,我们肯定是会先定义一个接口Car,里面包含了车子都会有的部件,如下:public abstract class Car { /** 引擎 */ p原创 2017-03-01 21:59:24 · 363 阅读 · 0 评论 -
【设计模式】代理模式
代理模式是一个使用率非常高的模式,其定义为:为其他对象提供一种代理以控制对这个对象的访问. 这里举一个日常生活中我们都会碰到过的例子,比如我们在玩网游时,不想自己去重复的打怪升级,只想安安心心跟人PK娱乐,但是不升级又跟不上大众的步伐,这时怎么办呢?游戏代练这个行业就由此而生,我们可以把账号交给代练,由他们帮我们打怪升级,等升级完后,我们再拿账号玩别的.这里的游戏代练过程就相当于对于玩家玩游原创 2017-03-02 16:17:53 · 412 阅读 · 0 评论 -
【设计模式】动态代理模式
上篇讲述了普通代理模式,今天来讲讲动态代理.说起动态代理,大家可能首先想到的就是Spring的AOP.我们天天在说AOP是通过动态代理实现的,那么动态代理到底是个什么呢?看完这篇文章你就会明白,同时也明白AOP到底是哪里用到了动态代理. 首先,我们来看动态代理的定义:动态代理是在实现阶段不用关心代理谁,而在运行阶段才指定代理哪一个对象的一种特殊代理模式。 接下来还是通过实例来学习吧,假原创 2017-03-03 16:53:15 · 857 阅读 · 0 评论 -
【设计模式】策略模式
策略模式是一种很常用的模式,尽管他有一些缺点,但是在我们日常代码中依旧经常用到,另外大家可以看Spring的AopProxy就有用到,今天比较晚了,下次抽时间给大家带来那段源码解析。 首先来看策略模式的定义:定义一组算法,将每个算法都封装 起来,并且使它们之间可以互换。这里依旧举例来说明:假定现有需求,对于用户的各种不同行为增加不同的积分,比如用户登录一次增加5积分,用户注册增加15积分,这原创 2017-03-07 22:07:43 · 434 阅读 · 1 评论 -
【设计模式】责任链模式
责任链模式是一种很常见的模式,我们平常开发中都会用到它,比如我们常用的Filter,就是一种责任链模式。 依旧举例说明,先来看如下一个例子:假如我们想买车,需要问老婆是否同意,你老婆要是做不了主,就要去问你的妈妈,同样你妈妈也做不了主呢,那么就要去问你的爸爸。这样形成的链路就是责任链,有权处理就直接处理,无权处理则交由下一级处理。下面来看类图: 接下来来看实现: 首先是我们的请求原创 2017-03-12 17:20:22 · 503 阅读 · 0 评论 -
【Spring源码】AOP部分源码解读
在之前的文章【设计模式】动态代理模式和【设计模式】策略模式中都讲到了AOP中有用到,今天就带领大家读读部分源码。 话不多说,我们直接先来看类图,之后再逐步分析: 首先根据类图中的入口,直接来看类ProxyFactoryBean,可以看到类ProxyFactoryBean实现了FactoryBean接口,实现这个接口的方法,我们就直接去看他的getObject方法(关于这点不太清楚的同学原创 2017-03-13 21:30:34 · 441 阅读 · 0 评论 -
【设计模式】状态模式
状态模式定义:当一个对象内在状态改变时运行其改变行为,这个对象看起来像改变了其类。 在我们if else超过3层的时候,很多时候我们会想到状态模式,其可以使代码结构看起来更清晰也利于扩展,其核心就是封装性,将状态的改变封装起来,客户端不用关心状态的改变,但是实际内部是有状态的转换的。 首先依旧是假定一个场景:我们平常玩网游的时候都会有杀人系统,这里简化一下,玩家分为白名,黄名,红名玩家原创 2017-04-10 19:48:15 · 440 阅读 · 0 评论