​ 一直都想对设计模式有一个深刻的认识,这样对于阅读源码的时候就不会那么吃力了.于是有了想要记录下设计模式的笔记.打算从自己不怎么熟悉的设计模式开始写,里面穿插着一点自己的想法,希望自己写完后,会又一个更深刻的理解和流畅的表述. 介绍 ​ 为请求创建了一个接受者的链,通常一个接收者包含下一个接受者的引用,如果该对象不能处理该请求,就传给下一个.依次类推,直到有处理的对象为止. 应用实例:jsp servlet的Filter,js中的事件冒泡 例子 ​ 通过一个例子来深刻的认识他.以前古代女子都遵…
Java 设计模式系列(二二)责任链模式 责任链模式是一种对象的行为模式.在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任. 一.责任链模式的结构 责任链模式涉及到的角色如下所示: 抽象处理者(Handler)角色:定义出一个处理请求的接口.如果需要,接口可以定义 出一个方法以设定和返回对下家的引…
工厂方法模式 属于23中设计模式中创建型类型. 核心思想:工厂提供创建对象的接口,由子类决定实例化哪一个子类. 来源 ​ 设计模式之禅中的例子,女娲造人,通过八卦炉来进行造人,没有烧熟的为白人,烧太熟的为黑人,刚好的为黄种人的例子进行程序展示 女娲作为client,八卦炉为工厂类,人类为具体实现类,有皮肤的区别. UML类图 图一 Factory: 工厂类的接口,根据类类型,提供只能创建Human子类,或者子孙类的方法. HumanFactory: 工厂类的具体实现,通过反射获取该对象. Hum…
介绍 ​ 我尽量用最少的语言解释总结: ​ Java23种设计模式之一,属于结构型模式,允许向一个现有的对象添加新的功能,不改变其结构. 应用实例: ​ 给英雄联盟种的射手,添加不同的装备.先装备攻速鞋,在装备电刀,最后装备无尽 uml类图如下 主要代码如下 ADC类: /** * @ClassName ADC * @Description 英雄联盟射手 * @Author ouyangkang * @Date 2018-11-13 08:49 **/ public interface ADC…
职责链模式(Chain Of Responsibility Pattern) 职责链模式(Chain Of Responsibility Pattern):属于对象的行为模式.使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. 职责链模式UML图 职责链模式涉及的角色 抽象处理者(Handler)角色:定义出一个处理请求的接口.如果需要,接口可以定义 出一个方法以设定和返回对下家的引用.这个角色通常由一…
在业务场景中,有很多是需要审批的.审核方式还可能常常发生变化,而责任链模式就是为了解决这种场景的情况的. 责任链模式定义:十多个对象都有机会处理请求,从而避免发送者和接受者之间的耦合关系.讲这些对象连成一条链,并沿着这条链传送这个请求,直到有一个对象处理他为止. 责任链模式的思想就是把处理请求的处理都拆开,一个处理逻辑封装成一个小颗粒类,在需要使用的时候就可以按照业务需要排序起来处理,就像一个链条.但是在这个过程中可能走完了也没有得到处理,这就需要给出一个默认的处理,而给出处理结果.接下来看看此…
目录 责任链模式 责任链模式的简单实现 Netty中的ChannelPipeline责任链 服务端接收客户端连接 pipeline初始化 入站事件和出站事件 Pipeline中的Handler Pipeline.channel.EventLoop的关系 结束语 责任链模式 责任链模式为请求创建一个处理数据的链. 客户端发起的请求和具体处理请求的过程进行了解耦,责任链上的处理者负责处理请求,客户端只需要把请求发送到责任链就行了,不需要去关心具体的处理逻辑和处理请求在责任链中是怎样传递的. 想要深入…
责任链主要指通过一连串的操作来实现某项功能或者在处理相关的业务时,对于自己的业务则进行处理,反之,对于不属于自己的业务,则进行下发!   一.示例展示: 以下例子主要通过对煤矿对井下警告信息的处理来进行说明,如果瓦斯浓度超出一定范围值时,某个系统会自动发送短信到矿井的值班领导手机上,如果超出范围继续扩大,会向上一级继续发送,直到发送到矿领导的手机上! 1. 创建抽象处理者角色(Handler):Leader public abstract class Leader { protected str…
定义 抽象工厂类为创建一组相关和相互依赖的对象提供一组接口,而无需指定一个具体的类. ​ 这里我得把工厂方法模式得定义拿出来做一下比较:定义一个创建对象的接口,由子类决定实例化哪一个类.工厂方法是一个类的实例化延迟到其子类.这里强调一下,工厂方法包括:简单工厂模式,和工厂方法模式等一些系列的工厂方法模式的变形. 案例 ​ 现在有两个产品,一个是手机,一个是电脑.手机和电脑都是不同的生产商生产的.我们要实现一个工厂管理系统,记录华为和苹果着两家工厂生产的手机和电脑信息. ​ 已知,华为和苹果都有自…
介绍 我尽量用最少的语言解释总结: Java23种设计模式之一,属于行为型模式.一个类的行为或者算法可以在运行时更改,策略对象改变context对象执行算法. 应用实例: ​ 以周瑜赔了夫人又折兵的例子. uml类图如下 主要代码如下 策略接口 /** * @ClassName Stragety * @Description 策略抽象类 * @Author ouyangkang * @Date 2018-11-15 09:06 **/ public interface Stragety { vo…