三个角色:环境(Context)角色:持有一个Strategy类的引用。抽象策略(Strategy)角色:通常由一个接口或者抽象类实现,此角色给出所有的具体策略类所需的接口。具体策略(ConcreteStrategy)角色:包装相关算法和行为为了帮助理解,我们举例来说明。我们的程序要实现加密功能。加密有一个加密算法,加密算法有很多种,比如MD5,DES等,我们的程序需要实现这个功能,就是可以让用户选择不同的加密算法进行加密。这个过程我们可以用Strateg
系统 2019-08-29 23:23:58 1962
Hibernate是笔者使用了超过5年的优秀ORM框架,虽然说使用了5年,但笔者并没有把握说自己真正意义上的精通Hibernate。说道熟悉Hibernate还差不多,因为Hibernate用法和特性只要使用过或许都很简单,但是要做到发挥Hibernate最大限度的潜力,Hibernate优化,或者说Hibernate性能优化笔者仅仅是初窥门径而已。这里摘录一篇牛人对于Hibernate优化的文章,希望对自己以后的使用指引下方向吧。这篇是上一篇的续作,着实
系统 2019-08-29 23:06:49 1962
如果你使用Mina开发一个复杂的网络应用时,你可能在某些地方会遇到那个古老而又好用的状态模式,来使用这个模式解决你的复杂应用。然而,在你做这个决定之前,你或许想检出Mina的状态机的代码,它会根据当前对象的状态来返回对接收到的简短的数据的处理信息。注意:现在正式发布Mina的状态机。因此你要自己在Mina的SVN服务器上检出该代码,并自己编译,请参考开发指南,来获取更多的关于检出和编译Mina源码的信息。Mina的状态机可以和所有已经发布的版本Mina配合
系统 2019-08-29 23:01:53 1962
1、在启动配置项中设置classpath2、修改openfire\build\lib\dist目录下的Log4j.xml文件
系统 2019-08-29 22:10:40 1962
在Java开发特别是数据库开发中,经常会用到Class.forName()这个方法。通过查询JavaDocumentation我们会发现使用Class.forName()静态方法的目的是为了动态加载类。在加载完成后,一般还要调用Class下的newInstance()静态方法来实例化对象以便操作。因此,单单使用Class.forName()是动态加载类是没有用的,其最终目的是为了实例化对象。这里有必要提一下就是Class下的newInstance()和ne
系统 2019-08-29 22:02:43 1962
PyGame是一个Python的库,能够让你更容易的写出一个游戏。它提供的功能包括图片处理和声音重放的功能,并且它们能很容易的整合进你的游戏里。去官网点击这里下载适合你的PyGame安装包。大家可以参阅:Python中pygame安装方法图文详解我们就拿打飞机来做个例子1.创建游戏框架以及游戏背景#这个模块放一些常用的工具和基础类和精灵类#在其他模块调用importpygameimportrandom#设置游戏屏幕大小这是一个常量SCREEN_RECT=p
系统 2019-09-27 17:56:17 1961
一个简易的TCP端口扫描器,使用python3实现。需求:扫描目标网站开放哪些端口号,将所有开放的端口号输出。分析:使用socket连接,如果连接成功,认为端口开放,如果连接失败,认为端口关闭(有可能端口开放但连接失败,这里简单认为端口不开放)使用到的库:socket,threading过程:先定义一个函数,对给定的(ip,port)进行扫描,看其是否能连接成功。deftcpPortScan(ip,port,openPort):sock=socket.so
系统 2019-09-27 17:55:41 1961
列表(list)、元组(tuple)、集(set)、数组(array)的相互转换1.转换成list:list();2.转换成tuple:tuple()3.转换成set:set()#转换成set后,重复数据将会被删除,具体见https://blog.csdn.net/Darren1921/article/details/936315094.转换成array:array()先来看一下这四种类型的输出情况:实例1b=tuple("161561")c=list("
系统 2019-09-27 17:55:28 1961
该代码主要是基于python实现判断指定文件夹下是否存在指定后缀的文件。代码如下:importosYour_Dir='你的文件夹/'Files=os.listdir(Your_Dir)forkinrange(len(Files)):#提取文件夹内所有文件的后缀Files[k]=os.path.splitext(Files[k])[1]Str2=['.wav','.mp3','.mp4']iflen(list(set(Str2).intersection(s
系统 2019-09-27 17:54:47 1961
#!/usr/bin/python#coding:utf-8importnumpyasnpa=np.array([1,2,3])b=np.array([[1,2,3],[4,5,6],[7,8,9]])#shape是维度,dtype是元素的类型printa.shapeprinta.dtype#使用函数生成等差数列数组x1=np.arange(1,11,2)x2=np.linspace(1,9,5)printx1,x2#求数组中的最大值和最小值printnp
系统 2019-09-27 17:54:45 1961