jjzjj

strategy-pattern

全部标签

java - 斯卡拉 : Registry design pattern or similar?

我正在将我的系统从Java迁移到Scala。我在我的java代码中使用注册表模式从字符串中获取实现。我可以用scala做任何类似的事情吗?我是scala的新手,有人可以指点我正确的引用资料吗?我的java代码:publicclassItemRegistry{privatefinalMapfactoryRegistry;publicItemRegistry(){this.factoryRegistry=newHashMap();}publicItemRegistry(Listfactories){factoryRegistry=newHashMap();for(ItemFactoryfa

java - 是否有保证 execute(T t) 方法的内置 Java 类型?

似乎对像下面这样的类型的需求如此普遍,以至于应该已经将类似的东西内置到Java中:publicinterfaceExecuter{voidexecute(Tobject);}然后它可以在其他类中使用,例如这个在一个对象上调用一堆执行器的简单示例。classHandlerimplementsExecuter{List>executerList;Handler(List>executer){this.executerList=executer;}voidexecute(Tt){for(Executerexecuter:this.executerList){executer.execute(

java - 在 Java 中使用策略模式的电子邮件程序

更新:又增加了一个问题(问题#4)。大家好我正在为自己构建一个自定义电子邮件实用程序。现在,为了遵守单一职责原则,我想要以下类:MailerSender、MailProvider和EmailObject。MailSender更像是一个委托(delegate),请在下面查看:publicclassMailSender{privateIMailProvidermailProvider;publicvoidsetMailProvider(IMailProviderprovider){this.mailProvider=provider;}//optiontosetitupduringcons

java - 将 if-else 修改为策略模式

我在java中有以下if-else分支。if(str.equals("a")){A;}elseif(str.equals("b")){B;}elseif(str.equals("c")){C;}elseif(str.length==5){D;}else{E;}如何将这段代码修改成策略模式? 最佳答案 这里是一个使用工厂的策略模式的例子:publicinterfaceStrategy{publicObject[]execute(Object[]args);}publicclassStrategyFactory{publicenumNa

java - 属性 'userDetailsService' : no matching editors or conversion strategy found

我总是得到:java.lang.Exception:java.lang.IllegalStateException:ContainerBase.addChild:start:org.apache.catalina.LifecycleException:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'org.springframework.security.filterChains':Cannotresolvereferencetobean'org.springframew

java - 在 Java 策略模式中组合策略

下面的例子无耻地抄袭了java.dzone.com,并根据我的需要进行了修改:我们的界面:publicinterfaceCompressionStrategy{publicvoidcompressFiles(ArrayListfiles);}我们的第一个实现publicclassGZipCompressionStrategyimplementsCompressionStrategy{publicFilecompressFiles(ArrayListfiles){//usingGZIPapproachreturnarchive;}}我们的第二个实现:publicclassTarCompr

Java : does regex pattern matcher have a size limit?

我的模式是OR-like:“word1|word2|word3”我有大约800个单词。这会是个问题吗? 最佳答案 您仅受内存和理智的限制。:) 关于Java:doesregexpatternmatcherhaveasizelimit?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6358387/

java - 这是一种常见的设计模式吗? "Descriptor pattern"?

我在做的事情是否符合通用设计模式?如果有,名字是什么?我有一个复杂对象,它具有“简单”字段,例如字符串和字符串列表,以及其他复杂对象。我想将此对象的实例添加到JMS消息队列中,这意味着它们需要是Serializable。我不想让整个对象图Serializable,所以我选择制作包含构建复杂对象所需信息的“Descriptor”对象和可以创建的“Builder”对象对象。现在,我序列化“Descriptor”对象并将其添加到队列中。当对象出队时,它会使用“Builder”构建成一个完整的对象。需要注意的重要一点是,对象是在其他系统上运行的作业。消息队列是一种方式,序列化只发生在作业生命周

java - 解决 Java Checkstyle 错误 : Name 'logger' must match pattern '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'

使用EclipseCheckstyle插件我看到这个错误:Name'logger'mustmatchpattern'^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'.我通过更改解决了这个错误:privatestaticfinalLoggerlogger=Logger.getLogger(someClass.class);到privatestaticfinalLoggerLOGGER=Logger.getLogger(someClass.class);为什么这是一个checkstyle警告? 最佳答案 因为该字段被标记为f

java - 太多 "pattern suffixes"- 设计味道?

我刚刚发现自己创建了一个名为“InstructionBuilderFactoryMapFactory”的类。那是一类的4个“模式后缀”。它立即让我想起了这一点:http://www.jroller.com/landers/entry/the_design_pattern_facade_pattern这是设计味道吗?我应该限制这个数字吗?我知道一些程序员对其他事情有类似的规则(例如,在C中不超过N级指针间接寻址)所有类(class)对我来说都是必要的。我有一个从字符串到工厂的(固定的)映射——我一直在做的事情。列表越来越长,我想将它移出使用构建器的类的构造函数(由从map获得的工厂创建.