博客园 - lazycoding
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=115546
2013-08-11T09:08:02Z
lazycoding
https://www.cnblogs.com/lazycoding/
feed.cnblogs.com
https://www.cnblogs.com/lazycoding/p/3248289.html
Unix sed实用教程系列目录[已完成] - lazycoding
本系列文章已经译完了,译自awk-sed@theunixschool,收获颇丰,作者没有讲明白的我做了补充,并且尝试讲的更清楚,整理成系列索引,方便学习,开篇非译文,是我为了方便后面的理解写的一篇,感谢原作者的分享.有任何问题欢迎留言讨论.Unix sed实用教程开篇[译]Unix sed实用教程第一篇–向文件中增加一行[译]Unix sed实用教程第二篇–替换文件内容[译]Unix sed实用教程第三篇–读写文件[译]Unix sed实用教程第四篇–选择性打印[译]Unix sed实用教程第五篇–替换文件内容续[译]Unix sed实用教程第六篇–删除文件内容[译]Unix sed实用教程第
2013-08-11T09:08:00Z
2013-08-11T09:08:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】本系列文章已经译完了,译自awk-sed@theunixschool,收获颇丰,作者没有讲明白的我做了补充,并且尝试讲的更清楚,整理成系列索引,方便学习,开篇非译文,是我为了方便后面的理解写的一篇,感谢原作者的分享.有任何问题欢迎留言讨论.Unix sed实用教程开篇[译]Unix sed实用教程第一篇–向文件中增加一行[译]Unix sed实用教程第二篇–替换文件内容[译]Unix sed实用教程第三篇–读写文件[译]Unix sed实用教程第四篇–选择性打印[译]Unix sed实用教程第五篇–替换文件内容续[译]Unix sed实用教程第六篇–删除文件内容[译]Unix sed实用教程第 <a href="https://www.cnblogs.com/lazycoding/p/3248289.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/p/3248276.html
Unix sed实用教程开篇 - lazycoding
已经看了一段时间的Linux Shell编程了,也能完成一些基本的使用,为了加深理解,恰好看到了The Unix School的一个sed&awk教程,不是简单的命令参数堆积,而是一个相当实用的系列,因此,希望能在几天内完成翻译.翻译过程不会逐字翻译,会穿插一些注释,包括自己的一些理解和其他的一些引用,作为开篇,简单说一下sed的工作机制,对后面的理解会有很大帮助。sed是什么:sed是一个非交互式的流编辑器(streameditor)。所谓非交互式,是指使用sed只能在命令行下输入编辑命令来编辑文本,然后在屏幕上查看输出;而所谓流编辑器,是指sed每次只从文件(或输入)读入一行,然后
2013-08-09T07:02:00Z
2013-08-09T07:02:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】已经看了一段时间的Linux Shell编程了,也能完成一些基本的使用,为了加深理解,恰好看到了The Unix School的一个sed&awk教程,不是简单的命令参数堆积,而是一个相当实用的系列,因此,希望能在几天内完成翻译.翻译过程不会逐字翻译,会穿插一些注释,包括自己的一些理解和其他的一些引用,作为开篇,简单说一下sed的工作机制,对后面的理解会有很大帮助。sed是什么:sed是一个非交互式的流编辑器(streameditor)。所谓非交互式,是指使用sed只能在命令行下输入编辑命令来编辑文本,然后在屏幕上查看输出;而所谓流编辑器,是指sed每次只从文件(或输入)读入一行,然后 <a href="https://www.cnblogs.com/lazycoding/p/3248276.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2013/06/02/3113989.html
阿里巴巴5月5日综合算法题详解 - lazycoding
之前参加了阿里的笔试和电面,让后天那个敏感的日子去参加现场面,就去看了一下那天笔试的最后一道综合题,看着网上清一色最后一道题不知道从哪转的答案,不忍直视,一看代码就是错的,最直接的就是求中位数连奇偶性都不判断,直接处以2..这,另外当在无法整除的情况下,数据结果错误。无法处理小数这道题的大意是:有一个淘宝商户,在某城市有n个仓库,每个仓库的储货量不同,现在要通过货物运输,将每次仓库的储货量变成一致的,n个仓库之间的运输线路围城一个圈,即1->2->3->4->...->n->1->...,货物只能通过连接的仓库运输,设计最小的运送成本(运货量*路程)达
2013-06-02T08:13:00Z
2013-06-02T08:13:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】之前参加了阿里的笔试和电面,让后天那个敏感的日子去参加现场面,就去看了一下那天笔试的最后一道综合题,看着网上清一色最后一道题不知道从哪转的答案,不忍直视,一看代码就是错的,最直接的就是求中位数连奇偶性都不判断,直接处以2..这,另外当在无法整除的情况下,数据结果错误。无法处理小数这道题的大意是:有一个淘宝商户,在某城市有n个仓库,每个仓库的储货量不同,现在要通过货物运输,将每次仓库的储货量变成一致的,n个仓库之间的运输线路围城一个圈,即1->2->3->4->...->n->1->...,货物只能通过连接的仓库运输,设计最小的运送成本(运货量*路程)达 <a href="https://www.cnblogs.com/lazycoding/archive/2013/06/02/3113989.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2013/05/27/3100932.html
[译]反射(Reflection)和动态(dynamic) - lazycoding
反射当我们需要检查,调用一个程序集的内容的时候,用反射,比如,当VS给智能提示的时候,就应用了反射。简单用法实例:var myAssembly = Assembly.LoadFile(@"C:\ClassLibrary1.dll");var myType = myAssembly.GetType("ClassLibrary1.Class1");dynamic objMyClass = Activator.CreateInstance(myType);// 获取类的类型信息Type parameterType = objMyClass.GetType();
2013-05-27T00:42:00Z
2013-05-27T00:42:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】反射当我们需要检查,调用一个程序集的内容的时候,用反射,比如,当VS给智能提示的时候,就应用了反射。简单用法实例:var myAssembly = Assembly.LoadFile(@"C:\ClassLibrary1.dll");var myType = myAssembly.GetType("ClassLibrary1.Class1");dynamic objMyClass = Activator.CreateInstance(myType);// 获取类的类型信息Type parameterType = objMyClass.GetType(); <a href="https://www.cnblogs.com/lazycoding/archive/2013/05/27/3100932.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2013/04/17/3025453.html
一道笔试指针题目详解 - lazycoding
看到本题是在搜狗某年的笔试题上,看也没人给出非常详细的讲解,直接给出了答案,我来尝试写一写,错误之处园友们指教.貌似本题来源自<The C Puzzle Book> ,搜狗也只是换了一下字符串,直接看题吧#include <stdio.h>char *c[]={"ENTNG", "NST","AMAZI","FIRBE"};char** cp[]={c+3, c+2, c+1, c};char ***cpp= cp;int main() { printf("%s",**+
2013-04-17T00:32:00Z
2013-04-17T00:32:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】看到本题是在搜狗某年的笔试题上,看也没人给出非常详细的讲解,直接给出了答案,我来尝试写一写,错误之处园友们指教.貌似本题来源自<The C Puzzle Book> ,搜狗也只是换了一下字符串,直接看题吧#include <stdio.h>char *c[]={"ENTNG", "NST","AMAZI","FIRBE"};char** cp[]={c+3, c+2, c+1, c};char ***cpp= cp;int main() { printf("%s",**+ <a href="https://www.cnblogs.com/lazycoding/archive/2013/04/17/3025453.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2013/04/01/2994211.html
[杂文]老罗的工匠情结 - lazycoding
我真正知道老罗是在11年了看了他在海淀剧场的《一个理想主义者的创业故事》,感觉这人非常不错,又与我大学之后产生的很多想法不谋而合,我有一个理想世界的情结,而老罗却是一个理想主义者,是一个先行者.老罗和西门子的事大家都知道,锤子ROM发布会之后,有人抨击ROM之时,同时扯出旧事,说老罗只是在做自己想用的ROM,就像西门子那件事,国内那么多冰箱有问题,老罗为什么抓住西门子不放,就因为他自己用了西门子,我很难理解这种人的逻辑,老罗自己也是人,他从自己看到的做起,有何不对?难道是要老罗拿一把西瓜刀从西门子一直杀到海尔吗?大部分人对别人总是有着完美情结,看事物总是看到别人的不足,以此获得心理上的满足感.
2013-04-01T12:03:00Z
2013-04-01T12:03:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】我真正知道老罗是在11年了看了他在海淀剧场的《一个理想主义者的创业故事》,感觉这人非常不错,又与我大学之后产生的很多想法不谋而合,我有一个理想世界的情结,而老罗却是一个理想主义者,是一个先行者.老罗和西门子的事大家都知道,锤子ROM发布会之后,有人抨击ROM之时,同时扯出旧事,说老罗只是在做自己想用的ROM,就像西门子那件事,国内那么多冰箱有问题,老罗为什么抓住西门子不放,就因为他自己用了西门子,我很难理解这种人的逻辑,老罗自己也是人,他从自己看到的做起,有何不对?难道是要老罗拿一把西瓜刀从西门子一直杀到海尔吗?大部分人对别人总是有着完美情结,看事物总是看到别人的不足,以此获得心理上的满足感. <a href="https://www.cnblogs.com/lazycoding/archive/2013/04/01/2994211.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2013/02/06/2904918.html
[原译]多线程揭秘 - lazycoding
多线程揭秘Demo下载:多线程演示Demo介绍本文将通过一些例子来展示.net 中如何实现多线程,涉及到以下四部分。1 .线程概念2 .如何实现多线程3 .如何确保线程安全4 .死锁什么是进程一个进程就是一个可执行文件运行的操作系统上下文环境。它被用来分隔虚拟地址空间,线程,对象句柄(指向类似文件这样的资源的指针),以及环境变量,进程还有一些类似优先级类和最大内存分配的属性。也就是说:1 .一个进程就是一个包含资源的内存块。2 .操作系统执行的一个单独的任务。3 .一个正在运行的软件4 .一个进程拥有一个/多个操作系统线程一般的。一个进程最大可以是4GB的内存空间,这块内存是安全,私有,其他进
2013-02-06T05:56:00Z
2013-02-06T05:56:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】多线程揭秘Demo下载:多线程演示Demo介绍本文将通过一些例子来展示.net 中如何实现多线程,涉及到以下四部分。1 .线程概念2 .如何实现多线程3 .如何确保线程安全4 .死锁什么是进程一个进程就是一个可执行文件运行的操作系统上下文环境。它被用来分隔虚拟地址空间,线程,对象句柄(指向类似文件这样的资源的指针),以及环境变量,进程还有一些类似优先级类和最大内存分配的属性。也就是说:1 .一个进程就是一个包含资源的内存块。2 .操作系统执行的一个单独的任务。3 .一个正在运行的软件4 .一个进程拥有一个/多个操作系统线程一般的。一个进程最大可以是4GB的内存空间,这块内存是安全,私有,其他进 <a href="https://www.cnblogs.com/lazycoding/archive/2013/02/06/2904918.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2013/01/06/2847587.html
[原译]Lambda高手之路第三部分 - lazycoding
背后的秘密-MSIL通过著名的LINQPad,我们可以更深入的查看MSIL代码而没有任何秘密。下图是一个LINQPad的使用截图我们会看三个例子,第一个Lambda表达式如下:Action<string> DoSomethingLambda = (s) =>{ Console.WriteLine(s);// + local};对应的普通函数是这样的Action<string> DoSomethingLambda = (s) =>{ Console.WriteLine(s);// + local};生成的MSIL代码片段如下:DoSomethingNormal
2013-01-06T05:50:00Z
2013-01-06T05:50:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】背后的秘密-MSIL通过著名的LINQPad,我们可以更深入的查看MSIL代码而没有任何秘密。下图是一个LINQPad的使用截图我们会看三个例子,第一个Lambda表达式如下:Action<string> DoSomethingLambda = (s) =>{ Console.WriteLine(s);// + local};对应的普通函数是这样的Action<string> DoSomethingLambda = (s) =>{ Console.WriteLine(s);// + local};生成的MSIL代码片段如下:DoSomethingNormal <a href="https://www.cnblogs.com/lazycoding/archive/2013/01/06/2847587.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2013/01/06/2847579.html
[原译]Lambda高手之路第二部分 - lazycoding
闭包的影响为了展示闭包的影响,我们看下面这个例子。var buttons = new Button[10];for(var i = 0; i < buttons.Length; i++){ var button = new Button(); button.Text = (i + 1) + ". Button - Click for Index!"; button.OnClick += (s, e) => { Messagebox.Show(i.ToString()); }; buttons[i] = button;}//如果我们点击按钮会发生什么这个问题很怪,
2013-01-06T05:47:00Z
2013-01-06T05:47:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】闭包的影响为了展示闭包的影响,我们看下面这个例子。var buttons = new Button[10];for(var i = 0; i < buttons.Length; i++){ var button = new Button(); button.Text = (i + 1) + ". Button - Click for Index!"; button.OnClick += (s, e) => { Messagebox.Show(i.ToString()); }; buttons[i] = button;}//如果我们点击按钮会发生什么这个问题很怪, <a href="https://www.cnblogs.com/lazycoding/archive/2013/01/06/2847579.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2013/01/06/2847574.html
[原译]Lambda高手之路第一部分 - lazycoding
好长时间没发技术文章了,恰好看到一篇非常详细的Lambda文章。一边翻译一边学习。题目好像有点霸气。。介绍Lambda表达式是使代码更加动态,易于扩展并且更加快速(看完本文你就知道原因了)的强有力的工具。也可以用来降低潜在的错误。同时可以利用静态输入和智能提示,就像VS里一样。Lambda表达式在.net framework 3.5中提出来。并且在LINQ和ASP.NET MVC内部的一些技术中扮演了相当重要的角色。如果你考虑一下ASP.NET MVC中各类控件的实现。你就发现。奥妙就是他们大多使用了Lambda表达式。和Lambda表达式一起,使用Html扩展方法将会使得在后台创建模型成为可
2013-01-06T05:45:00Z
2013-01-06T05:45:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】好长时间没发技术文章了,恰好看到一篇非常详细的Lambda文章。一边翻译一边学习。题目好像有点霸气。。介绍Lambda表达式是使代码更加动态,易于扩展并且更加快速(看完本文你就知道原因了)的强有力的工具。也可以用来降低潜在的错误。同时可以利用静态输入和智能提示,就像VS里一样。Lambda表达式在.net framework 3.5中提出来。并且在LINQ和ASP.NET MVC内部的一些技术中扮演了相当重要的角色。如果你考虑一下ASP.NET MVC中各类控件的实现。你就发现。奥妙就是他们大多使用了Lambda表达式。和Lambda表达式一起,使用Html扩展方法将会使得在后台创建模型成为可 <a href="https://www.cnblogs.com/lazycoding/archive/2013/01/06/2847574.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2012/12/08/2809166.html
3分钟理解Lambda表达式 - lazycoding
1.什么是Lambda表达式Lambda表达式是一个匿名方法,通常在LINQ中被用来创建委托简单来说。它是一个没有声明,没有访问修饰符,没有返回值。甚至没有名字的方法。2.为什么我们需要使用Lambda表达式?或者说为什么我们要写一个没有名字的函数?为了方便,这种快捷方式允许你在调用的地方直接编写代码,尤其是你想调用的代码只会在这个地方使用一次。并且方法体本身很短。节省了单独写方法中写声明等等的麻烦。。好处1.代码量减少。不必写方法的名称。返回值和访问修饰符2.当阅读代码的时候。直接就可以看到被调用函数的代码,不用去别的地方。Lambda表示应该短些。太复杂了。可读性就下降了如果编写Lambd
2012-12-08T11:33:00Z
2012-12-08T11:33:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】1.什么是Lambda表达式Lambda表达式是一个匿名方法,通常在LINQ中被用来创建委托简单来说。它是一个没有声明,没有访问修饰符,没有返回值。甚至没有名字的方法。2.为什么我们需要使用Lambda表达式?或者说为什么我们要写一个没有名字的函数?为了方便,这种快捷方式允许你在调用的地方直接编写代码,尤其是你想调用的代码只会在这个地方使用一次。并且方法体本身很短。节省了单独写方法中写声明等等的麻烦。。好处1.代码量减少。不必写方法的名称。返回值和访问修饰符2.当阅读代码的时候。直接就可以看到被调用函数的代码,不用去别的地方。Lambda表示应该短些。太复杂了。可读性就下降了如果编写Lambd <a href="https://www.cnblogs.com/lazycoding/archive/2012/12/08/2809166.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2012/12/03/2800265.html
[源码]打包下载算法与数据结构演示动画 - lazycoding
很早的时候,学习数据结构的时候。收集了一下演示的动画。帮助理解。但是不全。今天在看KMP算法的时候。看到了福州大学的一个精品课程。。81个演示动画呢。。想打包下载收藏。话说福州大学这才是好样的。踏踏实实搞学术。第一种方法就是手工了。。嘎嘎。你敢么。一个个下载。。。一个个改名。。第二种就是用整站下载的软件了。。但是我看了一下swf的命名。我就知道下载下来意义不大。因为名字不好理解。第三种就是自己写个程序吧。。整体思路,首先访问课程页面,解析得到每一章的标题和内容,然后创立章节文件夹,得到每个动画对应的html页面,然后对html页面解析,提取swf地址。然后下载就行了。比较疼的地方是那个页面用的
2012-12-03T12:37:00Z
2012-12-03T12:37:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】很早的时候,学习数据结构的时候。收集了一下演示的动画。帮助理解。但是不全。今天在看KMP算法的时候。看到了福州大学的一个精品课程。。81个演示动画呢。。想打包下载收藏。话说福州大学这才是好样的。踏踏实实搞学术。第一种方法就是手工了。。嘎嘎。你敢么。一个个下载。。。一个个改名。。第二种就是用整站下载的软件了。。但是我看了一下swf的命名。我就知道下载下来意义不大。因为名字不好理解。第三种就是自己写个程序吧。。整体思路,首先访问课程页面,解析得到每一章的标题和内容,然后创立章节文件夹,得到每个动画对应的html页面,然后对html页面解析,提取swf地址。然后下载就行了。比较疼的地方是那个页面用的 <a href="https://www.cnblogs.com/lazycoding/archive/2012/12/03/2800265.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2012/11/23/2784283.html
[原译]获取操作系统版本信息 - lazycoding
坊间流传的代码都有些问题,比如不能正常获取win7以上的版本信息,不能获取诸如专业版,旗舰版等的信息,不能正常获取操作系统位的信息。使用代码,写了一个简单的库来实现效果。用法大概如下:StringBuilder sb = new StringBuilder(String.Empty);sb.AppendLine("Operation System Information");sb.AppendLine("----------------------------");sb.AppendLine(String.Format("Name = {0}&
2012-11-23T05:33:00Z
2012-11-23T05:33:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】坊间流传的代码都有些问题,比如不能正常获取win7以上的版本信息,不能获取诸如专业版,旗舰版等的信息,不能正常获取操作系统位的信息。使用代码,写了一个简单的库来实现效果。用法大概如下:StringBuilder sb = new StringBuilder(String.Empty);sb.AppendLine("Operation System Information");sb.AppendLine("----------------------------");sb.AppendLine(String.Format("Name = {0}& <a href="https://www.cnblogs.com/lazycoding/archive/2012/11/23/2784283.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2012/11/21/2781384.html
依赖倒置原则和依赖注入模式 - lazycoding
昨天读完了程杰的《大话设计模式》。。收获颇丰。深刻感到了设计模式的伟大。。对面向接口的编程也理解了不少。刚好看到codeproject上一篇将依赖倒置的。讲到了依赖注入的方式。仔细读了一下。翻译一遍加深认识。高耦合的代码随着项目复杂性的不断增加,最终会变成一碗碗的意大利面条啦。。二者通常是软件设计上的问题,如果一个类对另一个类的实现了解太多。当该类改变的时候会引起更多的改变。这违反了依赖倒置原则而松耦合的代码设计优良。随着时间流逝,代码复杂两增大,松耦合的好处会变得更加清晰,依赖注入模式是实现松耦合的一个好的办法,本文介绍在没有依赖注入容器的情况下实现依赖注入GoF说了,依赖倒置的原则:高层模
2012-11-21T11:51:00Z
2012-11-21T11:51:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】昨天读完了程杰的《大话设计模式》。。收获颇丰。深刻感到了设计模式的伟大。。对面向接口的编程也理解了不少。刚好看到codeproject上一篇将依赖倒置的。讲到了依赖注入的方式。仔细读了一下。翻译一遍加深认识。高耦合的代码随着项目复杂性的不断增加,最终会变成一碗碗的意大利面条啦。。二者通常是软件设计上的问题,如果一个类对另一个类的实现了解太多。当该类改变的时候会引起更多的改变。这违反了依赖倒置原则而松耦合的代码设计优良。随着时间流逝,代码复杂两增大,松耦合的好处会变得更加清晰,依赖注入模式是实现松耦合的一个好的办法,本文介绍在没有依赖注入容器的情况下实现依赖注入GoF说了,依赖倒置的原则:高层模 <a href="https://www.cnblogs.com/lazycoding/archive/2012/11/21/2781384.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2012/11/18/2775785.html
[原译]C#中的throw - lazycoding
Throw会抛出/传递异常,通过在catch块里使用throw语句.可以改变产生的异常,比如我们可以抛出一个新的异常,throw语句有各种各样的,并且很有必要.例子我们首先看一下三个方法,分别叫做A,B,C,他们使用不同的throw语句。方法A使用了无参的throw语句。这可以被看作是rethrow(继续抛出)—他会抛出已经出现的同样的异常继续,方法B throw一个命名的异常变量。这就不是一个完全的rethrow了—因为他虽然抛出了同样的异常。但是改变了StackTrace(堆栈轨迹),如果有必要的话,我们可以收集一些异常信息,而方法C则创建了一个新的异常。提示:你可以通过这种方法实现自定义
2012-11-18T04:36:00Z
2012-11-18T04:36:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】Throw会抛出/传递异常,通过在catch块里使用throw语句.可以改变产生的异常,比如我们可以抛出一个新的异常,throw语句有各种各样的,并且很有必要.例子我们首先看一下三个方法,分别叫做A,B,C,他们使用不同的throw语句。方法A使用了无参的throw语句。这可以被看作是rethrow(继续抛出)—他会抛出已经出现的同样的异常继续,方法B throw一个命名的异常变量。这就不是一个完全的rethrow了—因为他虽然抛出了同样的异常。但是改变了StackTrace(堆栈轨迹),如果有必要的话,我们可以收集一些异常信息,而方法C则创建了一个新的异常。提示:你可以通过这种方法实现自定义 <a href="https://www.cnblogs.com/lazycoding/archive/2012/11/18/2775785.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2012/10/25/2740177.html
[原译]理解并实现模板模式 - lazycoding
著作权声明:本文由http://leaver.me翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!介绍本文实现模板模式背景有时候我们需要做很多任务,而做这些任务的算法可能不同,这样可以设计成策略模式,这样。执行该任务的基本的一些代码就是一样的。但程序可可以动态的切换来执行任务的不同部分了。现在,真实的情况是有些算法,从实现层面山看,有可能有一些步骤是不一样的,这种情况下。我们可以使用继承来完成。当有个算法,而这个算法的一部分却多样的时候。使用模板模式就很好。GoF定义模板模式为:"Define the skeleton of an algorithm in
2012-10-25T14:12:00Z
2012-10-25T14:12:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】著作权声明:本文由http://leaver.me翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!介绍本文实现模板模式背景有时候我们需要做很多任务,而做这些任务的算法可能不同,这样可以设计成策略模式,这样。执行该任务的基本的一些代码就是一样的。但程序可可以动态的切换来执行任务的不同部分了。现在,真实的情况是有些算法,从实现层面山看,有可能有一些步骤是不一样的,这种情况下。我们可以使用继承来完成。当有个算法,而这个算法的一部分却多样的时候。使用模板模式就很好。GoF定义模板模式为:"Define the skeleton of an algorithm in <a href="https://www.cnblogs.com/lazycoding/archive/2012/10/25/2740177.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2012/10/23/2736026.html
[原译]理解并实现外观设计模式 - lazycoding
著作权声明:本文由http://leaver.me翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!介绍本文介绍外观模式,并给出简单的实现示例背景写软件的时候,有时候需要处理一系列的对象来完成一个确定的任务.比如,我们给一个万能遥控器写代码,我们需要关掉所有的设备,那么,我们有这样几种选择.第一个就是手动选择每一个设备,然后一个接一个的关闭,这好傻.那我们为什么不再遥控器上放一个按钮,我们按一下就关掉了.按钮的命令会与设备控制器通信然后关掉他们.如果我们又想在晚上12的时候自动关闭设备,那么我们就会有一个基于事件的计时器,与设备通信,然后关闭设备,问题是在两种情况下我们
2012-10-23T10:44:00Z
2012-10-23T10:44:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】著作权声明:本文由http://leaver.me翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!介绍本文介绍外观模式,并给出简单的实现示例背景写软件的时候,有时候需要处理一系列的对象来完成一个确定的任务.比如,我们给一个万能遥控器写代码,我们需要关掉所有的设备,那么,我们有这样几种选择.第一个就是手动选择每一个设备,然后一个接一个的关闭,这好傻.那我们为什么不再遥控器上放一个按钮,我们按一下就关掉了.按钮的命令会与设备控制器通信然后关掉他们.如果我们又想在晚上12的时候自动关闭设备,那么我们就会有一个基于事件的计时器,与设备通信,然后关闭设备,问题是在两种情况下我们 <a href="https://www.cnblogs.com/lazycoding/archive/2012/10/23/2736026.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2012/10/22/2733639.html
[原译]理解并实现装饰器模式 - lazycoding
著作权声明:本文由http://leaver.me翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!背景本文讨论装饰器模式,这个模式是因为很多情况下需要动态的给对象添加功能.比如我们创建了一个Stream类.后来需要对这个数据流类动态的添加一个加密功能.有人可能说把加密方法写到流类里面啊.然后使用一个bool变量来控制开关就行了.但是这样.这个加密方法只能写一种..如果用派生类来实现.那么..对于不同的加密方法.,都要创建一个子类,举个例子.比如有时候是一些函数的组合.我们最终的派生类的数目基本上就和排列组合的数目一样了.我们使用装饰器模式来解决这个问题.GoF描述为&
2012-10-22T03:37:00Z
2012-10-22T03:37:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】著作权声明:本文由http://leaver.me翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!背景本文讨论装饰器模式,这个模式是因为很多情况下需要动态的给对象添加功能.比如我们创建了一个Stream类.后来需要对这个数据流类动态的添加一个加密功能.有人可能说把加密方法写到流类里面啊.然后使用一个bool变量来控制开关就行了.但是这样.这个加密方法只能写一种..如果用派生类来实现.那么..对于不同的加密方法.,都要创建一个子类,举个例子.比如有时候是一些函数的组合.我们最终的派生类的数目基本上就和排列组合的数目一样了.我们使用装饰器模式来解决这个问题.GoF描述为& <a href="https://www.cnblogs.com/lazycoding/archive/2012/10/22/2733639.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2012/10/20/2732554.html
[原译]理解并实现原型模式-实现ICloneable接口.理解深浅拷贝 - lazycoding
著作权声明:本文由http://leaver.me 翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!本文用C#实现原型模式,也会讨论深浅拷贝,已经如何在.net中高效实现ICloneable 接口介绍有时候我们需要从上下文得到一个对象的拷贝,然后通过一些独立的操作来处理他。原型模式在这种情况下很适用GoF 定义原型模式为用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。Specify the kind of objects to create using a prototypical instance, and create new objects by
2012-10-20T12:04:00Z
2012-10-20T12:04:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】著作权声明:本文由http://leaver.me 翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!本文用C#实现原型模式,也会讨论深浅拷贝,已经如何在.net中高效实现ICloneable 接口介绍有时候我们需要从上下文得到一个对象的拷贝,然后通过一些独立的操作来处理他。原型模式在这种情况下很适用GoF 定义原型模式为用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。Specify the kind of objects to create using a prototypical instance, and create new objects by <a href="https://www.cnblogs.com/lazycoding/archive/2012/10/20/2732554.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lazycoding/archive/2012/10/18/2729634.html
[原译]实现IEnumerable接口&理解yield关键字 - lazycoding
著作权声明:本文由http://leaver.me翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!本文讨论题目的内容。然后讨论IEnumerable接口如何使得foreach语句可以使用。之后会展示如果实现自定义的集合类,该集合类实现了IEnumerable接口。Yield关键字和遍历集合后面也讨论。背景一使用集合。就发现遍历集合就跟着来了。遍历集合最好的方式是实现迭代器模式-Understanding and Implementing the Iterator Pattern in C# and C++(这篇文章我过几天翻译一下) ,C#提供foreach来以一种优
2012-10-18T07:49:00Z
2012-10-18T07:49:00Z
lazycoding
https://www.cnblogs.com/lazycoding/
【摘要】著作权声明:本文由http://leaver.me翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!本文讨论题目的内容。然后讨论IEnumerable接口如何使得foreach语句可以使用。之后会展示如果实现自定义的集合类,该集合类实现了IEnumerable接口。Yield关键字和遍历集合后面也讨论。背景一使用集合。就发现遍历集合就跟着来了。遍历集合最好的方式是实现迭代器模式-Understanding and Implementing the Iterator Pattern in C# and C++(这篇文章我过几天翻译一下) ,C#提供foreach来以一种优 <a href="https://www.cnblogs.com/lazycoding/archive/2012/10/18/2729634.html" target="_blank">阅读全文</a>