<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[happy哥]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xing19920121</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xing19920121]]></copyright><item><title><![CDATA[策略设计模式]]></title><link>https://blog.youkuaiyun.com/xing19920121/article/details/105514203</link><guid>https://blog.youkuaiyun.com/xing19920121/article/details/105514203</guid><author>xing19920121</author><pubDate>Tue, 14 Apr 2020 16:23:58 +0800</pubDate><description><![CDATA[无论是Thread本身run方法,还是Runable的run方法，都是想将线程的控制本身和业务逻辑的运行分离开来，达到职责分明、功能单一的原则，这点和GoF中的策略模式相似。


下面模拟jdbc开发，将数据的封装部分抽取成一个策略接口


public interface RowHandler&lt;T&gt; {

    T handler(ResultSet rs);
}


publi...]]></description><category></category></item><item><title><![CDATA[项目中读取配置文件或者读文件方式有哪几种]]></title><link>https://blog.youkuaiyun.com/xing19920121/article/details/105487270</link><guid>https://blog.youkuaiyun.com/xing19920121/article/details/105487270</guid><author>xing19920121</author><pubDate>Mon, 13 Apr 2020 13:56:33 +0800</pubDate><description><![CDATA[1、使用类加载器：它只能读取类路径下的配置文件

2、使用ServletContext对象的getRealPath()：得到一个当前应用部署的路径
]]></description><category></category></item><item><title><![CDATA[模版方法]]></title><link>https://blog.youkuaiyun.com/xing19920121/article/details/105361587</link><guid>https://blog.youkuaiyun.com/xing19920121/article/details/105361587</guid><author>xing19920121</author><pubDate>Tue, 07 Apr 2020 12:19:26 +0800</pubDate><description><![CDATA[从Thead源码中学习了解到为何重写run()方法，但是启动线程又是start()。是因为这两个方法使用了模版方法设计模式

所谓模版方法：

就是先有一个设计好大致流程架构的final方法，将实现细节提取出来封装为一个abstract方法，让子类实现，同时该类也设置为abstract类。子类根据实际需求重写细节方法。最后用子类调用final方法。


/**
 * 模版方式设计模式
 *
 * ...]]></description><category></category></item></channel></rss>