设计模式中,真的有的长的很像的,甚至我们能从其中一个的类图直接演变为另一种类图。快,现在让我们来看看那些我们认识的姊妹图。
第一组:模板方法PK 建造者模式PK 工厂方法
模板方法 建造者模式 工厂方法
三者比较:相同点,主要思想都是定义一个框架,然后将一些步骤延迟到子类。
不同点,首先,模板方法模式是行为型模式,而建造者模式工厂方法都是创建型模式。
两两比较:模板VS 建造者
建造者模式用到模板方法,他们两个的使用范围区分就看构建的算法是否需要另外创建一个类。
而承担这...
分类:
其他好文 时间:
2014-05-18 18:30:27
阅读次数:
307
Labyrinth
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 519 Accepted Submission(s): 174
Problem Description
度度熊是一只喜欢探险的熊,一次偶然落...
分类:
其他好文 时间:
2014-05-18 16:04:51
阅读次数:
304
一直想学学LISP,今天总算开了个头。现在我学习LISP不是为了马上能够用于实际项目的应用,而是为了学习一下函数式的思维方式,能够更加深入的了解计算的本质,能够更好的用C++, Java, Python等编写程序。更何况,这些主流语言都逐渐增加了函数式编程的特征,C++,Java现在都引入了 Lambda 表达式。如果能够系统学习一下LISP,相信对自己以后掌握这些语言的新特新特征,对自己写JavaScript、Python,对自己了解闭包、高阶函数、Lambda表达式都会有很大帮助。言归正传,首先推荐三个...
分类:
其他好文 时间:
2014-05-18 16:01:45
阅读次数:
530
题目:
链接:点击打开链接
算法:
完全背包。
状态转移方程: dp[j] += dp[j-i];dp[j]表示钱j可以兑换的方法,,,,,i是硬币的价值1,2,3,,,个数是不限的
代码:
#include
#include
#include
using namespace std;
int dp[40000];
int n;
int main(...
分类:
其他好文 时间:
2014-05-18 15:43:08
阅读次数:
265
由于项目中需要用到webservice来做接口,于是花点时间先做知识储备。
开始的时候觉着这个webservice就是一个http请求啊,服务端监听,客户端发送xml报文,然后解析下发送了什么内容,返回响应的数据。
这是百度百科对webservice的定义,一般使用wsdl来描述服务。
后来我的误区就是 wsdl的xml 和 用http 请求组成的xml也就是用soap来请求webserv...
分类:
编程语言 时间:
2014-05-18 13:56:19
阅读次数:
410
字符串
基本字符串操作
字符串也是序列,因此序列的基本操作(索引、分片、连接、乘法、长度、求最大值和最小值、成员资格)对字符串同样适用:
索引
>>> 'a_string'[0]
'a'
长度
>>> len('a_string')
8
求最大值
>>> max('a_string')
't'
求最小值
>>> min('a_string')
'_'
乘法
>>> ...
分类:
编程语言 时间:
2014-05-18 10:50:15
阅读次数:
325
模板与泛型编程--模板定义引言: 所谓泛型程序就是以独立于任何特定类型的方式编写代码。使用泛型程序时,我们需要提供具体程序实例所操作的类型或值。 模板是泛型编程的基础。使用模板时可以无须了解模板的定义。 泛型编程与面向对象编程一样,都依赖于某种形式的多态性。面向对象编程中的多态性在运行时应用于存在继承关系的类。我们能够编写使用这些类的代码,忽略基类与派生类之间类型上的差异。只要使用基类的引用或指针...
分类:
编程语言 时间:
2014-05-18 07:23:00
阅读次数:
344
模板方法模式定义了一个操作中的算法的骨架,将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
结构图:
AbstractClass是抽象模板,定义并实现一个模板方法,这个模板方法一般是一个具体方法,它给出一个顶级逻辑的骨架。
ConcreteClass是具体模板,实现父类所定义的一个或多个抽象方法,每一个AbstractClass可以有任...
分类:
其他好文 时间:
2014-05-18 05:52:38
阅读次数:
243
Lambda挺强大,有兴趣的人看下关于lambda的理论,就清楚邱奇编码的实现了。
带if/else:
( lambda x, y: x if x
科里化:
( lambda x: ( lambda y: ( lambda z: x + y + z )( 1 ) )( 2 ) )( 3 )
递归:
func = lambda n: 1 if n == 0 e...
分类:
编程语言 时间:
2014-05-18 03:48:34
阅读次数:
262