摘要:
iterator(迭代器)——对象行为型模式1.意图提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。2.别名游标(cursor)3.动机一个聚合对象,应该提供一种方法来让别人可以访问它的列表,而又不暴露它的内部结构。此外,针对不同需要,可能要以不同的方式遍历这个列表。但是即使可以预见到所需的那些遍历操作,你可能也不希望列表的接口中充斥着各种不同遍历的操作。有时还可能需要在同一列表上同时进行各个遍历。迭代器模式都可以解决这些问题。这一模式的关键思想是将对列表的访问和访问从列表对象中分离出来并且放入一个迭代器对象中。迭代器类定义了一个访问该列表元素的接口。迭代器对象负责跟 阅读全文
posted @ 2012-05-21 15:19
w0w0
阅读(282)
评论(0)
推荐(0)
摘要:
卡特兰数研究问题:研究一串n个矩形加全部括号的方案数当n=1时,只有一种方式来加全部括号矩阵当n>=2时,一个加全部括号的矩阵就是两个加全部括号的矩阵子方案数的乘积,而且这两个子方案的分裂可能发生在第k个和第k+1个矩阵之间,其中k=1,2..n-1因此可得递归式:h(n)= h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1) (其中n>=2)递归式:h(n)=((4*n-2)/(n+1))*h(n-1);该递推关系的解为:h(n)=C(2n,n)/(n+1) (n=1,2,3,...)这个数就是卡特兰数。在网上找到的卡特兰的介绍: Catal 阅读全文
posted @ 2012-05-21 12:50
w0w0
阅读(298)
评论(0)
推荐(0)
摘要:
Interpreter(解释器)——类行为型模式1.意图给定一个语言,定义它的一种文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。2.动机如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。解释器模式描述了如何让为简单的语言定义一个文法,如何在该语言中表示一个句子,以及如何解释这个句子。3.适用性当有一个语言需要解释执行,并且你可以将该语言中的一个句子表示为一个抽象语法树时,可使用解释器模式,而当存在以下情况时该模式的效果最好:1)该文法简单,对于复杂的文法 阅读全文
posted @ 2012-05-21 10:53
w0w0
阅读(275)
评论(0)
推荐(0)