今天接手wpf版的交通管理项目,由于前人一走,剩下一堆半成熟的代码交由我负责,随之我就开始了痛苦的阅读代码的过程。前人是一个从事了5年的高手,写的代码很高深,各种委托、事件、lambda、回调到处都是,向我这种只懂简单的委托和事件的小白,读起来可想多痛苦。最痛苦的是,很少甚至没有注释,我顿时无语了。...
分类:
其他好文 时间:
2014-10-27 21:02:46
阅读次数:
254
在一个已经存在的编程语言里很少有对现有的生态系统起重大影响的新特性。Lambda表达式对于Java语言就是这种意义的存在。简单来说,Lambda表达式提供了便利的方式去创建一个匿名的功能。提供了一个简单的方式使用表达式或一系列的状态创建一个简单方法。Lambda表达式是包含一个抽象方法的接口。Lamdba表达式可以用来创建简单的匿名功能来实现对集合元素的排序和过滤,还能分配变量并传递到其他对象中。...
分类:
数据库 时间:
2014-10-27 17:37:03
阅读次数:
277
利用懒操作
代码中的很多操作都是Eager的,比如在发生方法调用的时候,参数会立即被求值。总体而言,使用Eager方式让编码本身更加简单,然而使用Lazy的方式通常而言,即意味着更好的效率。
本篇文章就是为了展示Java 8中新特性是如何让我们能够更方便的写出Lazy方式代码。
延迟初始化
对于会消耗较多资源的对象,使用延迟初始化是比较好的选择。这不仅能够节省一些资源,同时...
分类:
编程语言 时间:
2014-10-27 10:55:00
阅读次数:
352
资源处理
Java本身自带了垃圾回收(Garbage Collection)功能,但是只有垃圾回收的目标是内部资源(Internal Resource),典型的比如堆上分配的内存区域等。对于外部资源(External Resource),如数据库连接,文件句柄,套接字等资源,还是需要在程序中进行显式回收的。
使用Lambda表达式可以实现一种叫做Execute Around的模式,用来...
分类:
编程语言 时间:
2014-10-26 11:44:13
阅读次数:
305
委托概述 委托是寻址方法的.NET版本. 在C++中,函数指针只不过是一个指向内存位置的指针,它不是类型安全的.我们无法判断这个指针实际指向什么,更不知晓像参数和返回类型等项了. 而.NET委托完全不同,委托是类型安全的类,它定义了返回类型和参数的类型.委托不仅包含对方法的引用...
分类:
其他好文 时间:
2014-10-25 11:51:23
阅读次数:
103
使用Lambda表达式进行设计
在前面的几篇文章中,我们已经见识到了Lambda表达式是如何让代码变的更加紧凑和简洁的。
这一篇文章主要会介绍Lambda表达式如何改变程序的设计,如何让程序变的更加轻量级和简洁。如何让接口的使用变得更加流畅和直观。
使用Lambda表达式来实现策略模式
假设现在有一个Asset类型是这样的:
public class Asset {
...
分类:
编程语言 时间:
2014-10-25 07:03:55
阅读次数:
350
重新发明 Y 组合子:不用 λ演算那一套 重新发明 Y 组合子:不用 λ演算那一套目录1. 一类奇妙的函数1.1. 三个例子1.2. 构造方法1.3. 程序分解2. X 组合子3. Y 组合子4. 结语1 一类奇妙的函数1.1 三个例子函数(lambda ($) (lambda (n) ...
分类:
其他好文 时间:
2014-10-25 00:47:14
阅读次数:
298
c++11新增的lambda表达式特性。lambda用来表示只调用一次的小函数[=]表示取值 [&]表示取引用()表示函数的形参{}函数体,函数体前的类型为返回值类型1 PH::runOnMainThread([=](){2 PH::runOnMainThread([=]()3 ...
分类:
编程语言 时间:
2014-10-24 23:33:13
阅读次数:
309
列举目录中的所有文件
首先给出代码:
Files.list(Paths.get(".")).forEach(System.out::println);
Files.list方法得到的是一个Stream类型的对象,它代表了目标路径下所有的文件。如果只想获取目标路径下的所有目录文件:
Files.list(Paths.get("."))
.filter(Files...
分类:
编程语言 时间:
2014-10-24 11:00:57
阅读次数:
163
如何使用lambda和filter函数如何使用map来避免循环字符串替换getopt模块4.1 lambda和filter:简单的匿名函数4.2Map短路循环4.3在列表中做出决策——列表解析4.4为循环生成迭代器4.5使用字典的特殊字符串替换4.6重要模块4.6.1getopt从命令行中得到选项在...
分类:
编程语言 时间:
2014-10-23 16:03:34
阅读次数:
218