草庐IT

Iterator模式

全部标签

java原型(prototype)设计模式对象创建

我正在研究原型(prototype)设计模式并有一些问题。我了解原型(prototype)设计模式用于创建在内存或资源方面成本高昂的对象。在这种情况下,我们使用已经可用的对象的克隆。那么创建一个new对象和clone()有什么区别呢?对象存储在内存中的什么位置? 最佳答案 Javaclone()方法只是创建一个新对象并将成员变量值复制到其中。通常,它不比创建新对象更昂贵或更便宜。唯一一次clone()可能比使用new创建对象更便宜的情况是对象的构造函数做了一些昂贵的事情:例如,如果构造函数采用参数并将它们用作数据库查询的一部分?在这

java - Monad 和装饰器模式

我是函数式编程的新手。在学习有关Monad的教程时,我开始将其视为OOP中装饰器模式的类比。我是正确的还是有任何与Monads非常相似的设计模式? 最佳答案 Monad绝对不是装饰器。没有一种常用的标准OOP模式可以直接类比monad。虽然您可以在OOP中很好地实现monad,但请参阅例如:http://logicaltypes.blogspot.sg/2011/09/monads-in-java.html我所知道的最好的基于Clojure的monad教程是BrianMarick的这个视频系列:https://vimeo.com/2

java - 用于 Spring Web 服务调用的 Mockito 模式

我的被测类有这个方法publicSomeWebServiceResponsecallDownstream(SomeWebServiceRequestrequest){return(SomeWebServiceResponse)super.callService(request);}super方法只是调用SpringWS来进行调用-简化形式response=getWebServiceTemplate().marshalSendAndReceive(this.getBaseURL(),request);returnresponse;当我编写单元测试时,它试图进行实际的Web服务调用。我不清

java - getInstance() 是否表示根据单例模式的单例?

以前用过C#,我考虑过Calendarcal=Calendar.getInstance();根据GoF成为单例方法Singletonpattern(Wikipedia)我想知道如何创建两个日历,因为Date在某种程度上已被弃用。来自文档Getsacalendarusingthedefaulttimezoneandlocale.和重载getInstance(TimeZonezone)getInstance(LocaleaLocale)在我看来,这似乎是单例模式的概括,为每个时区和语言环境创建一个单例。但我想要同一时区的两个日历。但是,当我进行测试的时候@Testpublicvoidtes

java - GWT 程序有没有办法判断它是处于托管模式还是网络模式?

我希望我的GWT程序能够确定它是处于托管模式还是网络模式。有办法做到这一点吗?谢谢! 最佳答案 GWT.isScript()在非托管模式下返回true,在托管模式下返回false。http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/core/client/GWT.html#isScript() 关于java-GWT程序有没有办法判断它是处于托管模式还是网络模式?,我们在StackOverflow上

java - Servlet URL 模式以匹配以斜杠 ("/"结尾的 URL)

我想指定一个ServletURL模式来匹配以斜杠(“/”)结尾且只有一个斜杠的URL。我理解的模式/example/path/*将匹配一个URLhttp://example.com/example/path/这似乎有效。但是,相同的模式也可以匹配的URLhttp://example.com/example/path/a/http://example.com/example/path/b/http://example.com/example/path/c/我只是在寻找一个匹配http://example.com/example/path/的URL模式仅不匹配http://example.

java:分页结果的设计模式

所以有Iterable和Iterator和List。如果您试图为其他Java代码提供接口(interface),以便封装由返回“页面”结果的远程服务提供的功能,您会使用什么?例如,考虑一个数据库或网页(例如flickrAPI)。在第一次检索结果后,您知道结果的总数和前N个结果,但在检索其余结果之前,您不知道剩余的结果。 最佳答案 在您的情况下,鉴于每个元素的检索成本都很高,因此获取聚合结果而不是在删除调用级别直接迭代每个元素可能是有意义的。您可以提供一种返回列表的方法,如下所示:ListgetResults(intoffset,in

java - 我可以将构建器设计模式与 hibernate 一起使用吗?

假设我有这个类:publicclassMyEntity{privateintid;privateStringname;privateMyEntity(intid,Stringname){this.id=id;this.name=name;}publicstaticclassMyEntityBuilder{privateintid;privateStringname;privateMyEntityBuildersetId(intid){this.id=id;}privateMyEntityBuildersetName(Stringname){this.name=name;}private

java - Initial Vector的CTR模式使用(四)

据我所知,CTR模式不使用初始vector。它只需要一个计数器,用给定的key对其进行加密,然后将结果与明文进行异或以获得密文。其他分组密码模式(如CBC)在进行加密之前会使用初始vector对明文进行XOR。所以这是我的问题。我在Java中有以下代码(使用bouncycaSTLe库):Ciphercipher=Cipher.getInstance("AES/CTR/PKCS5Padding","BC");cipher.init(Cipher.ENCRYPT_MODE,key);byte[]result=cipher.doFinal("Someplaintext");使用相同的键对上述

使用HTML5中的模式属性

我在HTML5中有一个表格,我想将验证元素添加到名称,地址和电话字段中。到目前为止,我有以下代码:name='name'pattern='(-.''[A-Za-z])'name='phone'pattern='[0-9+()x-'']'name='address'pattern='[0-9A-Za-z][.,#/\:;''&*]'对于这个名称,我需要它能够接受-'.符号。对于电话,我需要它可以接受+()0-9x和空间。对于地址,我需要它能够接受我放在那里的所有角色。我不确定我已经做好了,就像测试时一样,我不会收到错误消息。看答案您需要将模式包装在"就像您也在使用'在您的模式本身中。样品的样本n