自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

转载 [转载]Java中abstract和interface的区别

来源:http://www.cnblogs.com/gxinliug/archive/2011/04/27/2031246.htmlabstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。 abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性

2012-02-14 11:32:15 684

原创 {类名}.this 的用法

{类名}.this 这种用法用来引用当前对象,类似局部静态变量。一般在当前类中内嵌对象中使用它。比如,在MainActivity用到了AlertDialog对象,而在AlertDialog的某个监听函数中,需要用到MainActivity这个对象,就采用这种方式。public class MainActivity extends Activity { // 退出程序提示 publi

2012-01-30 13:44:52 3319 1

原创 Intent的属性

Intent的目的是作为Activity之间的消息来传递的。为了达到这个目的,它有四个属性Action、Data、Extras、Category。Action作为标识符,代表一个Intent,当一个Activity需要外部协助处理时,就会发出一个Intent,如果一个程序能完成相应功能,只要在intent-filter加上这个这个intent就可以了。Data保存需要传递的数据格式,比

2012-01-15 21:18:50 1756

转载 python异常信息捕获方法整理归纳

方法一:try:....print 1/0except Exception,con:....print Exception,":",con#con可以换成其它的名字################################方法二:try:....print 1/0except:....import traceback....traceb

2011-12-09 09:36:25 5517

原创 “即时标记”

项目需求和原型设计来自于:《Python基础教程》第20章类图:相对于原版的代码,主要是把“Filter”的功能从Handler中独立出来了,使得功能模块更加清晰一点。代码如下:#encoding=utf-8#by pandaimport reclass filter(): '''为特定文本添加修饰性标签''' patterns =

2011-11-20 19:55:05 1977 1

转载 python中神奇的星号

传递实参和定义形参(所谓实参就是调用函数时传入的参数,形参则是定义函数是定义的参数)的时候,你还可以使用两个特殊的语法:``*`` ** 。调用函数时使用* **test(*args)    * 的作用其实就是把序列 args 中的每个元素,当作位置参数传进去。比如上面这个代码,如果 args 等于 (1,2,3) ,那么这个代码就等价于 test(1, 2, 3) 。test(*

2011-11-04 17:44:29 898

原创 wxPython学习一:基本代码框架

#encoding=utf-8##by panda'''wxPython程序基本框架'''def printInfo(info): print unicode(info, 'utf-8').encode('gbk')import wxclass Frame(wx.Frame): passclass App(wx.App): def OnInit(self

2011-10-30 21:41:46 1056

原创 设计模式总结

创建型设计模式这类模式的特质是管理对象的创建过程。 通常设计总是以使用工厂方法开始,当设计者发现需要更大的灵活性时,设计会向其它创建型模式演化。 工厂方法模式单例模式抽象工厂方法模式建造者模式原型模式简单工厂模式结构型模式

2011-10-29 15:35:11 1145

原创 访问者模式(python)

访问者模式:表示一个作用于某对象结构中的各元素的操作。它可以使你在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式适用于数据结构相对稳定而基于该数据结构的操作需要经常扩展的系统。因为该模式的优点就是增加新的操作很容易。#encoding=utf-8##by panda#访问模式def printInfo(info): print unicode(info,

2011-10-29 12:49:36 2895

原创 解释器模式(python)

解释器模式:给定一个语言,定义它文法的一种表示,并定义一个解释器。这个解释器使用该‘表示’来解释语言中的句子。应用场景:如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。比如“正常表达式”。#encoding=utf-8##by panda#解释器模式def pr

2011-10-28 17:19:45 1402

原创 享元模式(python)

享元模式:运用共享技术有效地支持大量细粒度的对象。内部状态:享元对象中不会随环境改变而改变的共享部分。比如围棋棋子的颜色。外部状态:随环境改变而改变、不可以共享的状态就是外部状态。比如围棋棋子的位置。应用场景:程序中使用了大量的对象,如果删除对象的外部状态,可以用相对较少的共享对象取代很多组对象,就可以考虑使用享元模式。#encoding=utf-8##by panda#

2011-10-28 10:47:11 1837

原创 中介者模式(python)

中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。一般应用于一组对象以定义良好但是复杂的方式进行通信的场合。优点:降低了各个模块的耦合性。缺点:中介对象容易变得复杂和庞大。#encoding=utf-8##by panda#中介者模式def printInfo(info): p

2011-10-27 21:12:12 1614

原创 职责链模式(python)

职责链模式:将能处理请求的对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理请求为止,避免请求的发送者和接收者之间的耦合关系。#encoding=utf-8##by panda#职责连模式def printInfo(info): print unicode(info, 'utf-8').encode('gbk')#抽象职责类class Manager()

2011-10-27 20:27:27 2029

原创 命令模式(python)

命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;支持对请求排队、记录请求日志,以及可撤销的操作。优点:把请求一个操作的对象与知道怎么执行一个操作的对象分隔开。#encoding=utf-8##by panda#命令模式def printInfo(info): print unicode(info, 'utf-8').encode('

2011-10-26 19:35:14 2950

原创 桥接模式(python)

桥接模式:将系统抽象部分与它的实现部分分离,使它们可以独立地变化。由于目标系统存在多个角度的分类,每一种分类都会有多种变化,那么就可以把多角度分离出来,让它们独立变化,减少它们之间的耦合。#encoding=utf-8##by panda#桥接模式def printInfo(info): print unicode(info, 'utf-8').encode('g

2011-10-26 18:21:50 3183

原创 单例模式(python)

单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。实现“某个类只有一个实例”途径:1、让一个全局变量使得一个对象被访问,但是它不能防止外部实例化多个对象。2、让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建。即单例模式。多线程时的单例模式:加锁——双重锁定。饿汉式单例类:在类被加载时就将自己实例化(静态初始化)。其优点是躲避了多线程访

2011-10-25 21:04:30 2571

原创 迭代器模式(python)

迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。python内置支持这种模式,所以一般来说,不用自己写,#encoding=utf-8##by panda#迭代器(Iterator)模式def printInfo(info): print unicode(info, 'utf-8').encode('gbk')#迭代器抽象类

2011-10-25 11:25:24 2083

原创 组合模式(python)

组合模式:针对“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。#encoding=utf-8##by panda#组合模式def printInfo(info): print unicode(info, 'utf-8').encode('gbk')#Component:公司抽象类class Company: name = ''

2011-10-25 09:19:04 2634

原创 备忘录模式(python)

备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。跟原型模式很像,不过在原型模式中保存对象的一切,而备忘录模式中只保存恢复时需要的数据。#encoding=utf-8##by panda#备忘录模式def printInfo(info): print unicode(info, 'u

2011-10-24 09:57:12 1841

原创 适配器模式(python)

适配器模式:将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。应用场景:希望复用一些现存的类,但是接口又与复用环境要求不一致。分类:类适配器(通过多重继承)、对象适配器。#encoding=utf-8##by panda#适配器模式def printInfo(info): print unicode(inf

2011-10-22 16:44:29 3716 2

原创 状态模式(python)

状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。应用场景:一个对象的行为取决于它的状态,即它必须在运行时刻根据状态改变它的行为。如果控制状态转换的条件表达式过于复杂,就可以考虑使用状态模式。关键点:把状态的判断逻辑转移到表示不同状态的一系

2011-10-19 10:58:56 3104

原创 抽象工厂模式(python版)

抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。优点:易于交换“产品系列”,只要更改相应的工厂即可。缺点:建立产品的时候很繁琐,需要增加和修改很多东西。优化1:为了避免客户端有过多的逻辑判断,可以封装出一个简单工厂类来生成产品类。

2011-10-18 21:13:50 6456 2

原创 观察者模式(python版)

观察者模式:又叫发布-订阅模式。    它定义了一种一对多的依赖关系,让多个观察者对象同时鉴定某一个主题对象。这个主题对象在状态发生变化时,会通知所有的观察者对象,使它们能够自动更新自己。观察者模式所做的工作实际上就是解耦,根据“依赖倒转原则”,让耦合的双方都依赖于抽象,

2011-10-17 11:03:12 5000

原创 建造者模式(python实现)

建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。相关模式:思路和模板方法模式很像,模板方法是封装算法流程,对某些细节,提供接口由子类修改,建造者模式更为高层一点,将所有细节都交由子类实现。代码:#encoding=utf-

2011-10-14 10:13:33 1950

原创 外观(Facade)模式[python版]

外观(Facade)模式:为子系统中的一组接口提供一个一致的界面。——此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。与其它模式的区别:与 “简单工厂模式+策略模式”的组合版 很类似,不过外观类的接口不是简单的调用功能类的相应接口,而是封装成了新的接口。

2011-10-13 09:46:05 1743

原创 模板方法模式(python)

模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。因此模板方法使得子类可以在不改变一个算法的结构的情况下重新定义该算法的某些特定变量。优点:把不变行为搬移到超类,去除子类中的重复代码。#encoding=utf-8##by panda#模板方法

2011-10-11 10:38:18 4141 1

原创 原型模式(python)

原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式本质就是克隆对象,所以在对象初始化操作比较复杂的情况下,很实用,能大大降低耗时,提高性能,因为“不用重新初始化对象,而是动态地获得对象运行时的状态”。浅拷贝(Shallow Copy):

2011-10-10 10:30:32 3139

转载 python对象复制

原文地址:http://edu.codepub.com/2010/0921/26021.php需求:你想复制一个对象.因为在Python中,无论你把对象做为参数传递,做为函数返回值,都是引用传递的.讨论:标准库中的copy模块提供了两个方法来实现拷贝.一个

2011-10-10 09:45:16 855

原创 工厂方法(python)

简单工厂模式的最大优点就是工厂类内部包含了必要的逻辑判断,客户端只要提供选择条件即可,这样客户端就不需要知道具体产品的信息了。但是每次增加产品就要修改工厂类,违背了“开放-封闭”原则。所以,有了工厂方法模式工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一

2011-10-09 13:23:37 5869

原创 代理模式(python)

代理模式(Proxy):为某个对象提供一种代理以控制对这个对象的访问。注意:代理模式和策略模式的类图很相近,实现方法也是一样的,但是应用场景很不一样,体现了不同的思想。    策略模式中同一外部对象访问上下文对象的操作一样,但是里面的策略对象不同。    代理模式中不

2011-09-27 10:35:16 4807 1

原创 装饰模式(python)

装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。应用场景:适用于 "新加入的功能仅仅是为了满足一些只在某些特定情况下才会执行的需求“。优点:1、把类中的装饰功能从类中去除,简化原有的类。2、装饰模式把每个要装饰的功能放在单

2011-09-26 16:02:58 2206

原创 设计模式的原则

一、单一职责原则判断:如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的的职责。违背的代价:一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱这个类完成其它职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。二、开放-封闭原则定义:软件实体(类、模块、函数等等)对扩展是开放的,对更改是封闭的,即可以

2011-09-22 09:15:04 649

原创 策略模式(实现柜台结账模块)

策略模式是一种定义一系列算法的方法,从概念上,所有这些算法完成的都是相同的工作,只是实现不同。所以可以实现context类,他可以以相同的方式调用所有的算法,减少了各类算法类与使用算法类之间之间的耦合。#encoding=utf-8##by panda#策略模式

2011-09-21 11:43:00 1456

原创 采用简单工厂模式实现计算器(python版)

工厂模式的核心:有这样一群类,他们区别很小,就像运算符类,他们的区别仅仅就是不同的运算符号。这样我们可以建一个工厂,按需“生产”出所需的所需要的类的实例。#encoding=utf-8##by panda#简单工厂模式class OperateBas

2011-09-20 10:06:27 2126

原创 'my_calendar' is not a valid tag library

错误信息:'my_calendar' is not a valid tag library: Template library my_calendar not found, tried django.templatetags.my_calendar,django.contrib.

2011-08-20 11:04:59 3258

转载 使用django自带的管理web新建一个超级管理员,但是登录进去却提示“你无权修改任何东西”

url.py取消 admin.autodiscover()的注释 即可。

2011-08-14 17:33:56 2876

转载 解决CSRF verification failed. Request aborted.的问题

django1.21加入了防止CSRF攻击的模块。    这是django的debug模式下给出的错误提示页面。Forbidden (403)CSRF verification failed. Request aborted.HelpReason

2011-08-02 21:52:34 1045

原创 格式化字符串%r

在python中格式化字符%r,表示打印的是对象day1 = "%r" % """hello,\nworld!"""day2 = "%s" % """hello,\nworld!"""print day1print day2结果为:'hello,\nw

2011-08-02 13:34:59 1497

原创 Django中的MVC

一、MVC基本概念MVC即Model-View-Controller(模型-视图-控制器)是一种应用在图形化的客户端上分层思想,在这套体系中,应用程序分为模型、视图和控制器。模型——保存数据,实现程序的业务逻辑视图——定义显示的方法,即组织数据,将其展示在用户面前

2011-07-30 19:44:29 2686

转载 使用setuptools自动安装python模块

setuptools绝对是个好东西,它可以自动的安装模块,只需要你提供给它一个模块名字就可以了,并且自动帮你解决模块的依赖问题。一般情况下用setuptools给安装的模块会自动放到一个后缀是.egg的目录里,下面看看怎么用setuptools。    首先,需要安装setupt

2011-07-08 14:18:49 1748

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除