草庐IT

初识设计模式 - 职责链模式

简介职责链设计模式(ChainOfResponsibilityDesignPattern)的定义是,将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。同时,将这些接收对象串成一条链,并沿着这条链传递这个对象,直至链上的某个接收对象能够处理这个请求为止。职责链可以是一条直线、一个环或一个树形结构,最常见的职责链是直线型,即沿着一条单向的链来传递请求。典型实现首先,定义一个抽象处理者Handler类,其代码示例如下:publicabstractclassHandler{//维持对下一个处理者的引用protectedHandlersuccessor;publicvoidsetHandler

初识设计模式 - 职责链模式

简介职责链设计模式(ChainOfResponsibilityDesignPattern)的定义是,将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。同时,将这些接收对象串成一条链,并沿着这条链传递这个对象,直至链上的某个接收对象能够处理这个请求为止。职责链可以是一条直线、一个环或一个树形结构,最常见的职责链是直线型,即沿着一条单向的链来传递请求。典型实现首先,定义一个抽象处理者Handler类,其代码示例如下:publicabstractclassHandler{//维持对下一个处理者的引用protectedHandlersuccessor;publicvoidsetHandler

GO实现Redis:GO实现TCP服务器(1)

本文实现一个EchoTCPServer完整代码:https://github.com/csgopher/go-redis本文涉及以下文件:handler:处理连接,客户端传来的指令server:服务端echo:测试maininterface/tcp/Handler.gotypeHandlerinterface{Handle(ctxcontext.Context,connnet.Conn)Close()error}Handler:业务逻辑的处理接口Handle(ctxcontext.Context,connnet.Conn)处理连接tcp/server.gotypeConfigstruct{Ad

GO实现Redis:GO实现TCP服务器(1)

本文实现一个EchoTCPServer完整代码:https://github.com/csgopher/go-redis本文涉及以下文件:handler:处理连接,客户端传来的指令server:服务端echo:测试maininterface/tcp/Handler.gotypeHandlerinterface{Handle(ctxcontext.Context,connnet.Conn)Close()error}Handler:业务逻辑的处理接口Handle(ctxcontext.Context,connnet.Conn)处理连接tcp/server.gotypeConfigstruct{Ad

SpringBoot中MyBatis的TypeHandler相关报错汇总以及正确写法。Type handler was null、Class Not Found等情况

迁移之前的老项目的时候,老项目中使用了一些MyBatis的TypeHandler相关的东西。但是老项目并非写在mapper.xml文件里面,而是使用@Select注解,把SQL写在了一个Class中。在改造的过程中,我将TypeHandler迁移到了xml文件中,然后报了一些错误,比如:Typehandlerwasnullonparametermappingforproperty'xxx'.再比如:ClassNotFound:com.xxx.XXXTypeHandler解决时间也不算太长,但是还是记录一下,方便出现这类问题的人或者自己下次使用。其实不管出现什么问题,肯定是TypeHandler

SpringBoot中MyBatis的TypeHandler相关报错汇总以及正确写法。Type handler was null、Class Not Found等情况

迁移之前的老项目的时候,老项目中使用了一些MyBatis的TypeHandler相关的东西。但是老项目并非写在mapper.xml文件里面,而是使用@Select注解,把SQL写在了一个Class中。在改造的过程中,我将TypeHandler迁移到了xml文件中,然后报了一些错误,比如:Typehandlerwasnullonparametermappingforproperty'xxx'.再比如:ClassNotFound:com.xxx.XXXTypeHandler解决时间也不算太长,但是还是记录一下,方便出现这类问题的人或者自己下次使用。其实不管出现什么问题,肯定是TypeHandler

Android Handler之同步屏障机制(sync barrier)

HandlerMessage种类Handler的Messgae种类分为三种:普通消息异步消息屏障消息其中普通消息又称为同步消息,我们平时发的消息基本都是同步消息,在这里不做讨论。异步消息通常我们使用Handler想消息队列中添加的Message都是同步的,如果我们想要添加一个异步的Message,有以下两种方式:1、Handler的构造方法有个async参数,默认的构造方法此参数是false,只要我们在构造handler对象的时候,把该参数设置为true就可以了。publicHandler(Callbackcallback,booleanasync){......省略代码mQueue=mLoo

Android Handler之同步屏障机制(sync barrier)

HandlerMessage种类Handler的Messgae种类分为三种:普通消息异步消息屏障消息其中普通消息又称为同步消息,我们平时发的消息基本都是同步消息,在这里不做讨论。异步消息通常我们使用Handler想消息队列中添加的Message都是同步的,如果我们想要添加一个异步的Message,有以下两种方式:1、Handler的构造方法有个async参数,默认的构造方法此参数是false,只要我们在构造handler对象的时候,把该参数设置为true就可以了。publicHandler(Callbackcallback,booleanasync){......省略代码mQueue=mLoo

Android Handler源码分析

开头三连Handler是什么???Handler能做什么??Handler怎么做到的??1.Handler是什么AHandlerallowsyoutosendandprocessMessageandRunnableobjectsassociatedwithathread'sMessageQueue.Handler允许开发者发送,处理消息和处理一个运行中的子线程的消息队列也就是handler能处理消息和处理其他线程的消息队列EachHandlerinstanceisassociatedwithasinglethreadandthatthread'smessagequeue.每个Handler是和

Android Handler源码分析

开头三连Handler是什么???Handler能做什么??Handler怎么做到的??1.Handler是什么AHandlerallowsyoutosendandprocessMessageandRunnableobjectsassociatedwithathread'sMessageQueue.Handler允许开发者发送,处理消息和处理一个运行中的子线程的消息队列也就是handler能处理消息和处理其他线程的消息队列EachHandlerinstanceisassociatedwithasinglethreadandthatthread'smessagequeue.每个Handler是和