<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Write the CODE,change the World!]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/rhlmsdn</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; rhlmsdn]]></copyright><item><title><![CDATA[C#技巧记录]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474127</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474127</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:49:02 +0800</pubDate><description><![CDATA[创建别名，实现C的typedef类似的功能

using MyInt=System.Int32;//为Int32定义别名]]></description><category></category></item><item><title><![CDATA[mysql小技巧]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474125</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474125</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:48:53 +0800</pubDate><description><![CDATA[//增加对应的秒数select end_time+ interval 10 second from student;

 当我们需要在定时计划中检测时间，下面的方法就有用了，直接上sql语句，一看便知

//判断当前日天的天数select *from credit
where DAY(now())=27;

//判断当前日天的月份select *from credit
where Month(no]]></description><category></category></item><item><title><![CDATA[“允许源文件与模块生成文件不同” 解决方法 ，亲测最有效的]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474123</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474123</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:48:49 +0800</pubDate><description><![CDATA[今天写代码的时候有一处访问数据库的操作，sql语句报了错，因为少加了一个【,】
调试的时候中断在这个地方，然后发现了问题，就顺手加了上去，再运行的时候发现运行的版本还是那个少了【,】的版本
然后就有了此文
网上查找解决方案大致有三种，我尝试了两种，最后使用了自己的办法解决
网上的解决方案链接在此【http://blog.youkuaiyun.com/woaizhoulichao1/article/detail]]></description><category></category></item><item><title><![CDATA[ThoughtWorks.QRCode生成二维码]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474121</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474121</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:48:44 +0800</pubDate><description><![CDATA[首先引用需要的dll，此处使用的是ThoughtWorks.QRCode.dll，网上可以找到对应的，此处也有一份，点击下载
http://files.cnblogs.com/files/ives/ThoughtWorks.QRCode.zip
接下来添加引用，不明白的网上文章很多。
关键代码如下

   　　 Bitmap bt;
        string enCodeString = "h]]></description><category></category></item><item><title><![CDATA[python3.5.2爬虫]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474120</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474120</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:48:39 +0800</pubDate><description><![CDATA[话不多说，都在代码里
#下载斗鱼颜值栏目主播照片
#author:ives
#date:2016-8-28 21:58
#e-mail:renhanlinbsl@163.com
 
import urllib.request
import string
import re
import json
import sys,os
 
url="http://capi.douyuc]]></description><category></category></item><item><title><![CDATA[观察者模式]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474119</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474119</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:48:35 +0800</pubDate><description><![CDATA[观察者模式:又称发布-订阅模式、模型-视图模式。一般在需要其他对象告知自己需要发生改变时使用。例如A表发生改变后，需要告知B更新数据。可以动态的实现添加多个观察者，也可以随时删除观察者。
    观察者模式可以使用在需要根据一个对象的改变动态的修改其他对象，或者激发其他对象相应的事件，而同时又不清楚会有多少个对象的时候。将数据与具体的表现充分分离，符合开闭原则。但同时需要注意，如果多个观察者之间]]></description><category></category></item><item><title><![CDATA[单例]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474118</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474118</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:48:30 +0800</pubDate><description><![CDATA[作用：保证当前类同时只能有一个对象存在，且这个类必须自行创建这个实例并向系统提供这个实例。
步骤：


私有化类的构造函数。


在类中使用new创建一个当前类的对象。


提供一个公开的方法，将创建的对象返回。
 
饿汉式：
class Single
{
private static final Single Instance=new Single();
priv]]></description><category></category></item><item><title><![CDATA[访问者模式]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474117</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474117</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:48:27 +0800</pubDate><description><![CDATA[访问者模式：常用在需要对系统添加新的功能，但是不希望破坏原有的结构，这个时候就可以使用访问者模式。使用前提是数据结构很少发生改动，同时对数据的操作可能经常会添加新的操作。
代码如下
public class test
{
    public static void main(String[] args)
    {
        persion p=new man("mike");]]></description><category></category></item><item><title><![CDATA[迭代器模式]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474116</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474116</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:48:21 +0800</pubDate><description><![CDATA[迭代器模式提供了一系列的方式，可以让我们按照指定得顺序来访问特定集合中的每个对象，这个访问的方式可以是从前往后遍历、从后往前、访问上一个元素、下一个元素、访问集合中第一个元素、最后一个元素。
    使用迭代器模式让客户端不需要了解对象中的细节，又可以让外部的对象访问到对象内部的数据。
    Java和c#中都提供了自己得迭代器的基类，只需要实现这个迭代器类就可以使用。那么在C++中我们可以]]></description><category></category></item><item><title><![CDATA[状态模式]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474115</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474115</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:48:16 +0800</pubDate><description><![CDATA[状态设计模式，GOF定义的23种设计模式之一，属于行为型模式。常用在需要根据对象的状态动态的改变队形的行为时。例如闹钟程序常见的功能，在工作日的时候会准时响起，休息日就不会打扰我们休息，这样的功能就可以使用状态模式来完成。 代码如下 public class test { public static void main(String[] args) { run r=new run(); for(i]]></description><category></category></item><item><title><![CDATA[备忘录模式]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474113</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474113</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:48:11 +0800</pubDate><description><![CDATA[备忘录模式
备忘录模式，也叫做快照模式。常用在需要临时保存对象当前状态的场景中，如游戏中的保存进度场景。当我们需要还原时，只需要重新加载之前保存的对象即可。属于GOF定义的23种设计模式。个人认为是比较简单的一种设计模式。
需要注意的是当需要保存的对象过多或者内容过大是，使用备忘录模式就可以产生性能上的问题。优点在于，我们可以将一个对象的状态保存在对象的外部，当需要使用的时候再重新提取即可。]]></description><category></category></item><item><title><![CDATA[asp.net 发送邮件]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474112</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474112</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:48:06 +0800</pubDate><description><![CDATA[asp.net 发送邮件 System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();            msg.To.Add("sheyou@sheyouyun.com");              msg.From = new MailAddress("renhanlinbsl@163.com", "renhan]]></description><category></category></item><item><title><![CDATA[建造者模式]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474111</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474111</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:48:02 +0800</pubDate><description><![CDATA[建造者模式，又称生成器模式。建造者模式将复杂对象和这个对象的具体表示分离，使得相同的创建过程可以生成不同表示的对象。模板模式更多的是将具有相同执行过程的算法封装起来，使得相同的算法可以根据对象的不同产生一些不一样的地方，这与建造者模式的思维方式近乎一致。不过建造者模式讲究的是将相似对象的创建过程统一，根据具体对象的不同来具体修改。所以说建造者模式更多的是对象的创建，而且是拥有相同构造的对象。这有模]]></description><category></category></item><item><title><![CDATA[抽象工厂模式]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474110</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474110</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:47:57 +0800</pubDate><description><![CDATA[当我们需要重复的创建对象的时候，通常会使用工厂模式来创建对象，这样来减轻工作量。但工厂模式的局限性在于只能够针对相同类型的产品。比如某工厂有一条生产果冻的生产线，这条生产线可以生产不同口味的果冻，这样可以很方便使用工厂模式来生成不同口味的果冻。但是如果新加入了一条生成汽水的生产线，那么整个系统就需要重新添加响应的汽水的类。这个时候就不能够很好的体现重用性了。如果我们将果冻和汽水的生产线都抽象出一个]]></description><category></category></item><item><title><![CDATA[摸板模式与钩子]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474109</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474109</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:47:52 +0800</pubDate><description><![CDATA[常常会在程序中遇到多个子类有共同的方法以及相似的调用过程。这个时候我们就可以使用模板模式来解决这些重复性的工作，例如我们买东西的时候一般都是挑选商品、付款这样的步骤，区别仅仅是挑选的商品品种不一样而已，这个时候我们就可以使用模板模式。那么模板模式需要怎么来实现呢，如下图

代码如下：
public class test
{
public static void main(String a]]></description><category></category></item><item><title><![CDATA[工厂模式]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474106</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474106</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:47:48 +0800</pubDate><description><![CDATA[之前总结了简单工厂模式，然后我们发现，如果需要添加一个新的产品的话，就需要对工厂就行修改，添加相应的判断语句，从而来创建需要的类型的对象。这样就提高了耦合性，维护起来也稍麻烦些。那么本文就总结下能够解决这个问题的另一种设计模式——工厂模式。
工厂模式：factory pattern。GOF定义的二十三中设计模式之一，属于创建型模式。工厂模式和简单工厂模式最大的区别在于工厂模式添加了公共的抽象工厂]]></description><category></category></item><item><title><![CDATA[代理设计模式]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474105</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474105</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:47:43 +0800</pubDate><description><![CDATA[代理设计模式：Proxy Pattern。在真实对象与客户端对象之间加入一层中阶层，由这一
层中介来完成对真实对象的引用。
优点：可以让程序的业务逻辑更加清晰。客户端对象不需要了解真实对象的细节，所有
的调用均由代理来完成。扩展性更高。代理保护了真实对象。
常用的场景：
1. 远程代理：为一个位于不同的位置的对象提供一个本地对象的代理。
2. 虚拟代理：当需要创建一个开销较大的对象时，]]></description><category></category></item><item><title><![CDATA[装饰设计模式]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474104</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474104</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:47:39 +0800</pubDate><description><![CDATA[装饰设计模式：Decorator Pattern，又称装饰者模式。特点是可以在不改变这个类的情况下，动态的为其添加新的功能，在运行时动态对对象进行扩展。主要实现方式是通过将其包装成另一个对象并添加新的功能来实现动态的添加功能。也就是说，是通过另一个类来将本来的对象包裹其中。
在实现的时候需要注意使装饰对象和真实对象使用相同的接口，这样可以使客户端对象在使用的时候用相同的接口来实现交互。
适用的]]></description><category></category></item><item><title><![CDATA[面向对象设计的SOLID原则、迪米特法则]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474102</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474102</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:47:36 +0800</pubDate><description><![CDATA[SPR(The Single Responsibility Principle):单一责任原则
OCP(The Open Closed Principle):开放封闭原则
LSP(The Liskov Substitution Principe):里氏替换原则
DIP(The Dependency Inversion Principle):依赖倒置原则
ISP(The Interface ]]></description><category></category></item><item><title><![CDATA[策略模式]]></title><link>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474101</link><guid>https://blog.youkuaiyun.com/rhlmsdn/article/details/70474101</guid><author>rhlmsdn</author><pubDate>Sat, 22 Apr 2017 19:47:31 +0800</pubDate><description><![CDATA[策略模式(Pattern Strategy)：封装一系列算法，根据使用的场景自动使用需要的算法。那怎么来实现呢，其实最简单的一点，如果我们抽象出一个父类，然后将具体的算法封装在具体的子类中。在调用方法中，传入需要的子类对象，那么就能自动的调用这个子类对象的具体算法了。
代码如下(此处为java代码,其他语言相似)：
public class t
{
public static void m]]></description><category></category></item></channel></rss>