使用多线程的方式1、函数式:使用threading模块threading.Thread(e.g target name parameters) 1 import time,threading 2 def loop(): 3 print("thread %s is running..." % ...
分类:
编程语言 时间:
2014-11-28 16:02:20
阅读次数:
267
7.5.1.1复合设计模式(THE COMPOSITE DESIGN PATTERN)
复合模式可以把几个对象组合成一个复合对象,使用这种的方法与使用基本对象一样。图 7.6 显示了面向对象实现这种模式的通常方法。
图 7.6CompositeComponent 是包含其他组件集合的类;它继承自 AbstractComponent,因此,能够使用基本组件的地方,也一样可以使用...
分类:
其他好文 时间:
2014-11-27 18:32:50
阅读次数:
213
7.5.1 用结构模式表示数据
如果我们根据数据结构,而不是对象来讨论程序的话,我们可以说,结构模式是描述设计数据结构常见和行之有效的方法;设计模式是更为具体,说明了如何在面向对象语言中,使用对象实现这些结构。在本章,我们会看到用函数式表示数据的方法。第一种表示方法,我们使用简单的记录列表,用任何一种语言来写都很容易,而第二种表示方法(使用差别联合)更有意义。我们先看一下第一种模式,复合模...
分类:
其他好文 时间:
2014-11-27 16:25:29
阅读次数:
212
7.4.2 使用聚合操作进行计算
聚合背后的思想是,在整个操作过程中,传递的某些状态能够被保持。我们首先初始状态,用给定的处理函数,为文档中的每个部分,计算出一个新的状态。这种思想反映在函数的签名中:
val aggregateDocument :
('a -> DocumentPart -> 'a)-> 'a -> DocumentPart –> 'a
我们之所以使...
分类:
其他好文 时间:
2014-11-27 12:48:53
阅读次数:
181
7.5 面向对象的表示方法
标准的设计模式可以分为三组:创建、结构和行为(creational, structural, and behavioral)。在这一节,我们将讨论后两组中的几种模式,它们类似于在本章前面用F# 使用的结构。模式的函数式版本不同于面向对象,因为面向对象编程把重点放在添加新类型,而函数编程的重点放在添加新函数,但结构非常相似。
提示
本节假定你有一点...
分类:
其他好文 时间:
2014-11-27 12:47:24
阅读次数:
123
7.4.1 用映射操作进行更新
尽管这个操作类似于映射,但是,真的实现,还需要作出重要的设计选择。分栏部分可能递归地包含多个部分,所以,文档是一种树形结构,我们需要决定以哪种顺序处理节点:
1、从根部开始,对所有嵌套在其中的部分,递归地调用映射操作。
2、从叶子开始,首先处理嵌套最深的部分,然后,返回到包含它们的部分。
在处理列表时,顺序无关紧要,但是,对于树形结构,却是相当重要的。...
分类:
其他好文 时间:
2014-11-27 10:51:04
阅读次数:
226
7.4 写操作
处理文档,可能有多种操作;我们可以把文档中的所有标题改成大写,或者,把多列文本合并到一个列。可以发现,所有这些操作有一些共同之处,它们与前一章的映射操作之间有相似性;如同映射一样,每个操作都对文档进行检查,再对特定部分执行某种转换,最后,返回新的文档。
另一种操作可能只返回一个不同类型的值,比如,可以实现这样的函数,统计文档中的字数,或将文档的全部文本作为字符串都返回。这...
分类:
其他好文 时间:
2014-11-26 16:39:36
阅读次数:
117
7.3.2 用 XML 表示文档
XML 格式非常流行,非常适合于保存分层次的数据,比如,上一节的文档。如何处理 XML,对于许多实际应用非常重要,因此,在这一节,我们要扩展我们的应用程序,以支持从 XML 文件加载文档。我们将使用.NET 3.5 的 LINQ to XMLAPI 完成大部分的困难工作,自己再写另外的 XML 解析器没有任何意义。LINQto XML 是函数概念应用于主流...
分类:
其他好文 时间:
2014-11-26 11:18:35
阅读次数:
210
GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 GNU Compiler Collection 也即是 GNU 编译器家族的意思了。另一方面,说到 GCC 对于操作系统平台及硬件平台支持,概...
分类:
系统相关 时间:
2014-11-25 23:36:51
阅读次数:
207
7.2.2 在窗体上显示绘图
绘图与第四章的示例类似。因为绘图需要一定的时间,我们将在内存中创建位图,绘制好文档,然后,在窗体上显示位图,而不是每次窗体失效时都绘制文档。我们先看一下非常有用的函数式编程模式,这一节就将使用。
“Hole in the Middle(中间有洞)”模式
[真心不知道,Hole in the Middle 是什么意思?]
写代码的一个常见...