策略模式(Strategy Pattern) 详解
本文地址: http://blog.csdn.net/caroline_wendy/article/details/26577879
本文版权所有, 禁止转载, 如有需要, 请站内联系.
策略模式: 定义了算法族, 分别封装起来, 让它们之间可以相互替换, 此模式让算法的变化独立于使用算法的客户.
对于父类的子类族需要经常扩展新的功能, 为了使用父类比较灵...
分类:
其他好文 时间:
2014-05-23 02:35:13
阅读次数:
341
在01背包问题中,在选择是否要把一个物品加到背包中,必须把该物品加进去的子问题的解与不取该物品的子问题的解进行比较,这种方式形成的问题导致了许多重叠子问题,使用动态规划来解决。n=5是物品的数量,c=10是书包能承受的重量,w=[2,2,6,5,4]是每个物品的重量,v=[6,3,5,4,6]是每个物品的价值,先把递归的定义写出来:
然后自底向上实现,代码如下:
def...
分类:
编程语言 时间:
2014-05-23 01:49:06
阅读次数:
461
进程(Process)和线程(Thread)是程序运行的两个基本单元。Java并发编程更多的是和线程相关。
进程
进程是一个独立的执行单元,可将其视为一个程序或应用。然而,一个程序内部同事还包含多个进程。Java运行时环境就是一个单独的进程,在它内部还包含了作为进程的各种类和程序。
线程
可以将线程看做轻量级的进程。线程存在于进程当中,需要的资源开销较小。同一进程中的线程共...
分类:
编程语言 时间:
2014-05-23 00:16:01
阅读次数:
372
主要理解新与旧到底在哪里 这样也就理解了 深浅拷贝
先说说赋值,其实python中的赋值其实是赋值了一个引用,例如:
foo1=1.0
foo2=foo1
用操作符is判断时,你可以发现结果是true,是因为python是先创建了一个对象1.0,然后这个对象的引用又被赋值给了foo1和foo2,但是如果是这样:
foo1=1.0
foo2=1.0
这时你会...
分类:
编程语言 时间:
2014-05-22 23:17:34
阅读次数:
340
模板与泛型编程--一个泛型句柄类引言:【小心地雷】 这个例子体现了C++相当复杂的语言应用,理解它需要很好地理解继承和模板。在熟悉了这些特性之后再研究这个例子也许会帮助。另一方面,这个例子还能很好地测试你对这些特性的理解程度。 前面示例的Sales_item和Query两个类的使用计数的实现是相同的。这类问题非常适合于泛型编程:可以定义类模板管理指针和进行使用计数。原本不相关的Sales_item...
分类:
编程语言 时间:
2014-05-22 22:46:57
阅读次数:
479
筛选法又称筛法,具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。因为希腊人是把数写在涂腊...
分类:
其他好文 时间:
2014-05-22 18:29:55
阅读次数:
392
工厂方法模式适合于对实现了同一接口或继承了同一父类的一些类进行实例的创建。一般是通过定义一个工厂类,并在其方法中实现对具有上述特点的类对象的创建。根据具体产生类对象的方法定义形式,又可以将其分为普通工厂方法模式、多个工厂方法模式和静态工厂方法模式。一、普通工厂方法模式:常见的经典写法如下(以发送邮件...
分类:
其他好文 时间:
2014-05-22 14:26:03
阅读次数:
236
why???Cause I‘m
lazy!!!XD。。。很早之前就想学python,正好微信订阅了crossin编程教室的公众号,时不时瞄一两眼。上个礼拜六误打误撞被朋友拐去了Pycon
APAC 2014,正巧看到Bob把code和music结合起来玩,还蛮有意思的。那,这次是不是应该下决心有所行...
分类:
编程语言 时间:
2014-05-22 14:25:25
阅读次数:
282