05 2010 档案
摘要:许多学过C的朋友一定还记得C语言中的类型转换,例如:float FloatNum = 1.234;int IntNum = (int)FloatNum;// IntNum = 1这是比较正常的类型转换,稍微危险一点的转换如下:float FloatNum = 1.234;float * pFloatPointer = &FloatNum;int * pIn...
阅读全文
摘要:状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。将每种状态封装成独立的类,并将动作委托给代表当前状态的对象,当糖果机处于不同的状态时,你投入25¥会得到不同的行为。策略模式是除了继承之外一种弹性替代方案,通过组合不同的对象来改变行为。状态模式是不用在context中放置许多条件判断的替代方案,通常将行为包装进状态中,通过在context中简单的改变状态对象来改变con...
阅读全文
摘要:迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。将遍历聚合的工作封装进一个对象中,依赖聚合提供遍历。Java5 all the collections has add travel method, so you don't need require Iterator to travel all the elements.使用for(MenuItem item: ...
阅读全文
摘要:模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。模板就是一个方法,它将算法定义成一组步骤,其中的任何步骤都可以是抽象的,由子类负责实现。确保算法的结构保持不变,同时由子类提供部分实现。如果一个步骤子类必须有自己的实现时,该步骤方法设为抽象的,如果子类对一个步骤是可选的,就用钩子,子类可以选择是否覆盖钩...
阅读全文
摘要:如果MS对PC有绝对的统治力的话Google就是互联网世界的MS(但秉承互联网相当开放)Apple就是手机移动领域的MS(相当的封闭)本质上来说如果网络有问题,如果在世界最大的局域网内,Google的很多服务都没有太大意义。1.Google searh & maps 人人都知道了,Gmail也是Google的主要业务之一,每一秒都在增加空间,同时对于一些自己不常用的邮件进行归档,帮Google节...
阅读全文
摘要:1.客户通过目标接口调用适配器的方法对适配器发出请求。2.适配器使用被适配者接口把请求转换成被适配者的一个或多个调用接口3.客户接收到调用的结果,但并未察觉这一切是适配器在起转换作用。适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。有两种适配器:对象适配器和类适配器(多重继承)//实现想要转换成的目标类型接口public class TurkeyA...
阅读全文
摘要:Acitvity可以看作是一个User Interface Program, 提供使用者一个交互式的接口功能。如一个Email程序可能包含三个activity:1.邮件列表的activity 2.显示邮件内容的activity 3.写邮件或回复邮件的activity所有的activity在系统里由activity堆栈所管理,当一个新的activity被执行后,它将会被放置在堆栈的最顶端,并变成“...
阅读全文
摘要:1.客户创建一个命令对象 2.客户利用setCommand()将命令对象储存在调用者中。 3.客户要求调用者执行命令。将发出请求的对象和执行请求的对象解耦。命令模式:将请求封装成对象,以便使用不同的请求、队列或日志来参数化其他对象。命令模式也支持可撤销的操作。一个命令对象通过在特定接收者上绑定一组动作来封装一个请求,将动作和接收者包进对象中,这个对象只暴露出一个execute()方法,当次方方调...
阅读全文
摘要:当使用new时,就会想到“具体”,因为代码绑着具体的类,缺乏弹性。例如制作不同的Pizza,它包括先创建不同类型的Pizza对象,再进行烘烤、包装等一些方法,一旦某种Pizza不再需要或需要新类型的Pizza,就要对制作Pizza源代码中创建Pizza对象的部分进行修改,创建新的Pizza类型。简单工厂模式就是另外建立一个Pizza工厂专门用来创建不同种类的Pizza,制作Pizza的方法中不用...
阅读全文
摘要:利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如果能够利用组合的做法扩展对象的行为,就可以在运行时动态扩展。从而把新的方法,甚至是设计超类时还没有想到的方法加在对象上,同时又不修改原来的代码。原则:类应该对扩展开放,对修改关闭。如果顾客需要Mocha和奶泡深焙咖啡:1.取一个深焙咖啡(DarkRoast)对象 2.以摩卡对象装饰它 3.以奶泡装饰它 4....
阅读全文
摘要:有一些观察者对象依赖于主题对象,主题对象管理一些数据,并将数据发送给观察者对象,观察者可以添加或删除。就像订阅报纸,每个读者就是一个观察者,可以向报社(主题)订阅报纸,也可以取消订阅(报社就不在给该读者发送报纸)。观察者模式:定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。主题(可观察者)用一个共同的接口来更新观察者,观察者和可观察者之间用松耦合的方式结合...
阅读全文
摘要:在过一段时间Android就会推出2.2版本,据说支持多任务了,希望能赶上Apple的Iphone os4.0.现在的Android支持Java和C/C++两种语言,后者要用到NDK,方便开发者编写应用中性能相对重要的那一部分。里面会有一些native library,如OpenGL ES2.0用于编写性能要求高的游戏应用。但主要还是用Java来完成。以下来自www.5billion.com.c...
阅读全文
摘要:Python 网络编程基础,由于原书用的测试网站数据改变,无法正常获取天气信息。#!/usr/bin/env python# -*- coding:gb2312 -*-from htmlentitydefs import entitydefsfrom HTMLParser import HTMLParserimport sys, re, urllib2#define a list of inte...
阅读全文
摘要:Html中的实体表示正规的字符。例如:有个Html实体:&,表示"&"。当为了工作而显示HTML代码的时候,通常要把这些HTML实体转换成纯文本格式。当出现实体时,HTMLParser会调用handle_entityref()方法,如果不定义这个方法,实体就会被忽略掉。当出现一个实体的时候,代码检查实体是否可识别。如果可以,则转换为相应的值。否则,就使用输入流中的文字值。HTML中还包含字...
阅读全文
摘要:"Foundations of Python Network Programming" written by John GoerzenPython 中有urllib2和urllib两个模块来处理HTTP协议GET方法把表单数据编码至URL。在请求页面之后,加上一个?,接着是表单数据。每个键和值对被&分隔。http://cn.bing.com/search?q=python+socket&go=&...
阅读全文
摘要:字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。...
阅读全文
摘要:静态库:函数和数据被编译进一个二进制文件(.LIB)。在编译连接可执行文件时,连接器从库中复制这些函数和数据并把它们和应用程序的其他模块组合起来创建最终的exe文件。动态库:往往需要两个文件,一个引入库lib和一个dll。.lib 引入(输入)库文件,包含导出的变量或函数的符号名,dll文件包含实际的函数和数据。在链接时,只需要链接引入库,dll中的函数代码和数据并不复制到可执行文件中,到运行的...
阅读全文

浙公网安备 33010602011771号