编程技术

设计模式介绍之六:工厂模式(factory)的巧妙

本文展示了实际项目中使用到的一个工厂模式实现,在向系统中添加新类型时,只需要在新类型的实现文件这一处做改动,将新增类型对应用程序代码的干扰降到了最低。这个工厂实现的基本思想是:继承自同一个接口的新类型,通过一个函数来创建其对象,利用C++中类的构造函数会被自动调用这一特性,在新类型的实现文件中定义一个静态的(辅助)类对象,在该辅助类的构造函数中,向工厂单例注册新类型的创建函数。先看下代码,然后我们一一来解释。下面是命令接口CommandObject的头文件

系统 2019-08-29 22:35:19 2050

编程技术

对Xwindow的思考

对Xwindow的思考作者:白文涛XWindowSystem是一套Client-Server体系结构的窗口系统,它是现代Unix系统(包括Linux、FreeBSDetc.)所必备的图形界面。目前,绝大部分个人电脑用户基本上都在使用图形用户界面(GUI)。如果是Windows及Macintosh的用户自不待言、在Linux等的UNIX环境下用户也经常使用KDE及GNOME等桌面环境。这是个非常了不起的事情。象笔者这样,根据所做的项目一会儿使用Linux,一

系统 2019-08-29 22:27:54 2050

编程技术

我对as3声音架构的理解

一直都对as3的声音架构设计感到困惑,as3为什么要把播放和停止方法分开呢?为什么不能用一个Sound更换载入的声音呢?这几天有空专门专研了一下。原来as3对声音的设计也是深思熟虑的。目的不是为了把问题搞得复杂,而是为了在功能强化的同时做到精简。并尽可能方便我们使用。现在把我这两天的理解拿出来共享,有什么不到位的地方请多多建议。[1b]架构图:[/1b][url=http://bbs.actionscript3.cn/attachment.php?aid=

系统 2019-08-29 22:23:39 2050

编程技术

【分词】正向最大匹配中文分词算法

中文分词一直都是中文自然语言处理领域的基础研究。目前,网络上流行的很多中文分词软件都可以在付出较少的代价的同时,具备较高的正确率。而且不少中文分词软件支持Lucene扩展。但不管实现如何,目前而言的分词系统绝大多数都是基于中文词典的匹配算法。在这里我想介绍一下中文分词的一个最基础算法:最大匹配算法(MaximumMatching,以下简称MM算法)。MM算法有两种:一种正向最大匹配,一种逆向最大匹配。●算法思想正向最大匹配算法:从左到右将待分词文本中的几个

系统 2019-08-29 21:59:36 2050

编程技术

向表中批量插入数据的SQL

建立一张表后,有时为了测试,需要向表中批量插入一些数据。如果纯手工插入,相信没有人会干。一下SQL语句可以完成批量数据插入的功能。建表脚本如下:CREATETABLEHELLO(IDVARCHAR2(64),NAMEVARCHAR2(64),AGEVARCHAR2(64));数据插入SQL如下:declarev_countnumber;beginv_count:=1;whilev_count<=10000loopinsertintohellovalues(

系统 2019-08-12 09:30:17 2050

编程技术

原型(Prototype)模式

克隆的实现方法有两种:浅拷贝(shallowcopy)与深拷贝(deepcopy)。浅拷贝是指当对象的字段值被拷贝时,字段引用的对象不会被拷贝。例如,如果一个对象有一个指向字符串的字段,并且我们对该对象做了一个浅拷贝,那么两个对象将引用同一个字符串。深拷贝是对对象实例中字段引用的对象也进行拷贝的一种方式,所以如果一个对象有一个指向字符串的字段,并且我们对该对象做了一个深拷贝的话,我们将创建一个新的对象和一个新的字符串--新对象将引用新字符串。需要注意的是执

系统 2019-08-12 09:29:47 2050

编程技术

根据公司项目~搭建开发的框架(二)

创建数据库工具类SharedPreferences以XML格式存储数据,存数格式是键值对SqliteAndroid内置的数据库,一般使用的时候继承SQLiteOpenHelper,CRUD的常规操作一般写在里面publicclassDbHelperextendsSQLiteOpenHelper{privatestaticfinalStringDB_NAME="mydb";publicstaticfinalStringTB_PERSON="person";p

系统 2019-08-12 09:29:35 2050

Python

python爬虫urllib的request与parse方法

在爬虫前,需要知道这两个知识点!!!字符串转字节类型str-->bytesencode()字节类型转字符串bytes-->strdecode()1.以一个简单的例子讲解urllib.request方法read读取相应内容,内容geturl获取请求的urlgetheaders获取头部信息getcode获取状态码readlines按行读取,返回列表,都是字节类型1.1获取百度的网页代码importurllib.requesturl="https://www.b

系统 2019-09-27 17:57:13 2049

Python

Python学习笔记 汇总篇(更新中)

第一篇markdown编辑器001Markdown基本语法第二篇Python集成环境和解释器002Python解释器安装003Python解释器源修改004pip的使用005Python的IDE之Pycharm的使用006Python的IDE之Jupyter的使用第三篇Python基础007常量008变量009Python变量内存管理010各类赋值方式011注释012数据类型基础013数据类型:数字类型014数据类型:字符串类型015数据类型:列表类型01

系统 2019-09-27 17:56:43 2049

Python

python实现根据图标提取分类应用程序实例

本文实例讲述了python实现根据图标提取分类应用程序,分享给大家供大家参考。具体方法如下:#!/usr/bin/python#-*-coding:utf-8-*-importImageimportwin32uiimportwin32guidefmake_regalur_image(img,size=(256,256)):returnimg.resize(size).convert('RGB')defsplit_image(img,part_size=(6

系统 2019-09-27 17:56:14 2049

Python

python 统计代码行数简单实例

python统计代码行数简单实例送测的时候,发现需要统计代码行数于是写了个小程序统计自己的代码的行数。#calclate_code_lines.pyimportosdefafileline(f_path):res=0f=open(f_path)forlinesinf:iflines.split():res+=1returnresif__name__=='__main__':host='E:'+os.sep+'develop'+os.sep+'dev_wor

系统 2019-09-27 17:55:46 2049

Python

python基于queue和threading实现多线程下载实例

本文实例讲述了python基于queue和threading实现多线程下载的方法,分享给大家供大家参考。具体方法如下:主代码如下:#downloadworkerqueue_download=Queue.Queue(0)DOWNLOAD_WORKERS=20foriinrange(DOWNLOAD_WORKERS):DownloadWorker(queue_download).start()#startadownloadworkerformd5inMD5S:

系统 2019-09-27 17:55:42 2049

Python

Python assert语句的简单使用示例

写在前面最近每日一更,我这菜鸡都有点儿不好意思了简单介绍简单用法是:assertexpression让我们用程序来测试这个expression,如果expression相当于False,那么raise一个AssertionError出来。即逻辑上等同于:ifnotexpression:raiseAssertionError简单看看这些例子:>>>assertTrue>>>assertFalseTraceback(mostrecentcalllast):Fi

系统 2019-09-27 17:55:25 2049

Python

老生常谈python之鸭子类和多态

一、什么是多态<1>一种类型具有多种类型的能力<2>允许不同的对象对同一消息做出灵活的反应<3>以一种通用的方式对待个使用的对象<4>非动态语言必须通过继承和接口的方式来实现二、python中的多态<1>通过继承实现多态(子类可以作为父类来使用)<2>子类通过重载父类的方法实现多态classAnimal:defmove(self):print('animalismoving....')classDog(Animal):passdefmove(obj):ob

系统 2019-09-27 17:55:15 2049