装饰模式
摘要:最近在学设计模式,转载了川山甲的博客:http://www.cnblogs.com/baochuan/archive/2012/02/28/2371521.html,在此做个备份,以备自己查阅;装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案有这样一个项目,做一...
阅读全文
posted @
2015-03-15 10:15
mingaixin
阅读(265)
推荐(0) 编辑
观察者模式
摘要:设计原则:在观察者模式中,会改变的是主题的状态以及观察者的数目。用这个模式,你可以改变依赖于主题状态的对象,却不必改变主题。——找出程序中会变化的方面,然后将其和固定不变的方面相分离!主题和观察者都使用接口:观察者利用主题的接口向主题注册,而主题利用观察者接口通知观察者。这样可以让两者之间运作正常,...
阅读全文
posted @
2015-03-13 17:46
mingaixin
阅读(246)
推荐(0) 编辑
策略模式
摘要:策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。封装:把行为用接口封装起来,我们可以把那些经常变化的部分,从当前的类中单独取出来,用接口进行单独的封装。互相替换:我们封装好了接口,通过指定不同的接口实现类进行算法的变化。下面的代码是实现一个鸭子游...
阅读全文
posted @
2015-03-13 17:16
mingaixin
阅读(245)
推荐(0) 编辑
nginx日志切割脚本
摘要:nginx的日志文件没有rotate功能。如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件。第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志。在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,linu...
阅读全文
posted @
2015-03-13 16:42
mingaixin
阅读(1636)
推荐(0) 编辑
tcp与http的区别
摘要:1、TCP连接手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入S...
阅读全文
posted @
2015-03-13 16:35
mingaixin
阅读(476)
推荐(0) 编辑
thrift与protobuffer的区别
摘要:thrift由facebook出品,protobuffer由google出品;下面对比一下这两个的区别。参考:http://zhidao.baidu.com/link?url=yNLBeHhWokfwB677UZHoyv4vLyPOZEEQypUMiX__YIhp5E7UmpvIWTArKPMab3...
阅读全文
posted @
2015-03-13 15:53
mingaixin
阅读(5252)
推荐(2) 编辑
Thrift RPC框架介绍
摘要:u简介Thrift是一种开源的跨语言的RPC服务框架。Thrift最初由facebook公司开发的,在2007年facebook将其提交apache基金会开源了。对于当时的facebook来说创造thrift是为了解决facebook系统中各系统间大数据量的传输通信以及系统之间语言环境不同需要跨平台...
阅读全文
posted @
2015-03-13 15:36
mingaixin
阅读(1096)
推荐(0) 编辑
爬取千万淘宝商品的python脚本
摘要:import timeimport leveldbfrom urllib.parse import quote_plus import reimport jsonimport itertoolsimport sysimport requestsfrom queue import Queuefrom ...
阅读全文
posted @
2015-03-12 14:18
mingaixin
阅读(8865)
推荐(0) 编辑
PHP简单工厂模式、工厂方法模式和抽象工厂模式
摘要:PHP工厂模式概念:工厂模式是一种类,它具有为您创建对象的某些方法。您可以使用工厂类创建对象,而不直接使用 new。这样,如果您想要更改所创建的对象类型,只需更改该工厂即可。使用该工厂的所有代码会自动更改。根据抽象程度不同,PHP工厂模式分为:简单工厂模式、工厂方法模式和抽象工厂模式简单工厂模式:/...
阅读全文
posted @
2015-03-09 17:52
mingaixin
阅读(4719)
推荐(2) 编辑
PHP的HashTable实现
摘要:转载自:http://it.taocms.org/07/1145.htm数据结构:HashTable数据结构的描述在Zend/zend_hash.h文件中。首先,HashTable中的每一个元素都保存在下面这样的一个struct中:typedef struct bucket { ulong h...
阅读全文
posted @
2015-03-09 10:54
mingaixin
阅读(2076)
推荐(0) 编辑
理解Hash
摘要:哈希表(hash table)是从一个集合A到另一个集合B的映射(mapping)。映射是一种对应关系,而且集合A的某个元素只能对应集合B中的一个元素。但反过来,集合B中的一个元素可能对应多个集合A中的元素。如果B中的元素只能对应A中的一个元素,这样的映射被称为一一映射。这样的对应关系在现实生活中很...
阅读全文
posted @
2015-03-06 17:32
mingaixin
阅读(1925)
推荐(0) 编辑
PHP中Array的hash函数实现
摘要:PHP中使用最多的非Array莫属了,那Array是如何实现的?在PHP内部Array通过一个hashtable来实现,其中使用链接法解决hash冲突的问题,这样最坏情况下,查找Array元素的复杂度为O(N),最好则为1.而其计算字符串hash值的方法如下,将源码摘出来以供查备:ps:对于以下函数...
阅读全文
posted @
2015-03-06 17:30
mingaixin
阅读(756)
推荐(0) 编辑
php底层HashTable的实现
摘要:本文转载自: http://segmentfault.com/blog/tree/1190000000718519HashTable对PHP来说是一种非常重要的数据结构。很多PHP的内部实现(变量的作用域,函数表,类的属性、方法,数组)就是通过HashTable来实现的。最近了解了一下PHP底层Ha...
阅读全文
posted @
2015-03-06 17:19
mingaixin
阅读(4620)
推荐(0) 编辑