草庐IT

anti-patterns

全部标签

java - 我如何使用 .properties 文件或数据库中的正则表达式指定 Hibernate "@Pattern"注释

情况:我想根据用户属性执行Hibernate验证(以允许根据用户帐户数据对输入使用不同的验证规则)-我认为必须可以使用.properties文件来指定一个特定的正则表达式,但我不知道出了什么问题:我当前指定验证正则表达式的方法是从特定接口(interface)文件中的常量中提取该正则表达式(以将所有内容放在一起)并将其作为常量插入@Pattern()注释中每个变量-例如对于变量workPhone:@Column(name="WORK_PHONE")@NotEmpty(message="{ContactInfo.workPhone.notEmpty}")@Pattern(regexp=P

java - 为什么 `Pattern.compile("(? :\u00e9 )",Pattern.CANON_EQ)` throw?

Pattern.CANON_EQ编译的正则表达式没有限制。然而Pattern.compile("(?:\u00e9)",Pattern.CANON_EQ);抛出异常:java.util.regex.PatternSyntaxException:Unmatchedclosing')'nearindex11((?:é)|é)|e)́)^请注意,模式是规范化的字符串。它看起来像是JRE中的错误,但我在问题跟踪器中找不到这样的错误。 最佳答案 似乎是这样的:http://bugs.sun.com/bugdatabase/view_bug.d

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 - Struts ActionForm 属性应该是什么类型?

我使用Struts1.2.4继承了这个巨大的遗留JavaWeb应用程序。我有一个关于ActionForms的具体问题。其中一些只有字符串属性(即使是数字),其中一些使用看似合适的类型(整数、日期、字符串等)。这里的最佳做法是什么?另外,似乎如果一个属性是Integer类型,并且用户输入的值不是一个整数值,Struts会默默地吞下它并且不设置该属性。这是怎么回事? 最佳答案 对于Struts1.2x,用户在HTML表单上输入或选择值的属性以及由StrutsHTML标记自动填充到ActionForm实例的属性必须是字符串或boolean

java - GWT 客户端工厂 : Isn't this just a big blob/monolith?

GWTClientFactory似乎是GWT应用程序崭露头角的新设计模式,虽然不是正式的GWTAPI的一部分,但受到GWT的鼓励,并且在无数GWT/MVP示例中都可以找到。我想要喜欢ClientFactory概念。但我担心的是:对于具有许多屏幕、显示区域和复杂架构的非常大的应用程序,单个ClientFactory将成为一个庞大的数据结构单体,上面可能有数百个getter方法.所以我问:这样可以吗?为什么GWT鼓励并接受这样的整体式设计,但在其他(一般)应用程序中却不这样。更重要的是,是否有一种方法可以将范围广泛的ClientFactory分解为工厂对象的层次结构,以帮助实现代码可维护性

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获得的工厂创建.

java - 为什么 Java Pattern 类使用工厂方法而不是构造函数?

在generalcase中对此进行了很好的讨论。.但是,我特别想知道为什么Pattern类使用compile创建对象的静态方法,而不是构造函数?在我看来使用构造函数更直观。 最佳答案 Pattern类比JDK中的很多东西都新。因此,我相信他们采用了更现代的使用工厂方法的方法,而不是使用公共(public)构造函数的旧方法。您无法真正改造现有类的工厂方法。一般来说,没有太多理由在工厂方法上使用构造函数,所以我认为仅此而已。工厂方法允许您抽象对象创建,这非常有用。 关于java-为什么Jav