jjzjj

factory-pattern

全部标签

java - 在 jar 文件中隐藏类

真的不可能在jar文件中隐藏一些类吗?我不想允许类的直接实例化以使其更加灵活。这个jar应该只能看到工厂(或外观)。除了创建两个项目之外,还有其他方法可以解决这个问题吗?(两个项目:第一个包含类(实现),另一个引用第一个并包含工厂;稍后将仅引用第二个) 最佳答案 我知道您并不是要隐藏实际的类,只是要防止它们在工厂类之外构造。我认为这可以很容易地通过在类构造函数中使用包私有(private)(默认)可见性来实现。唯一的限制是您需要将类和工厂放在同一个包中,因此在中型到大型代码库中,事情可能会变得不必要地复杂。

java - Java : pattern or anti-pattern? synchronized 的混淆使用

我正在对不属于我的Java产品进行代码审查。我不是Java专家,但我强烈怀疑这是毫无意义的,并且表明对同步工作原理存在根本性的误解。synchronized(this){this.notify();}但我可能错了,因为Java不是我的主要Playground。也许这样做是有原因的。如果您能告诉我开发人员的想法,我将不胜感激。 最佳答案 这当然不是毫无意义的,你可以让另一个线程引用包含上述代码的对象synchronized(foo){foo.wait();}为了在有事发生时被唤醒。不过,在许多情况下,在内部/私有(private)锁对

java - Pattern.compile 缓存吗?

这可能是一个实现细节,但至少对于Oracle和IBMJDK而言,编译模式是否已缓存,或者我们作为应用程序开发人员是否需要自己执行已编译模式的缓存? 最佳答案 据我查看代码(JDK6)所知,它不进行缓存,但一旦构建,Pattern对象就可以缓存在应用程序端并在多个线程之间共享。标准模式似乎是将其分配给最终静态变量:privatestaticfinalPatternp=Pattern.compile(","); 关于java-Pattern.compile缓存吗?,我们在StackOverf

java - 如何在 Java 中正确制作线程安全的单例工厂?

这个问题在这里已经有了答案:WhatisanefficientwaytoimplementasingletonpatterninJava?[closed](29个答案)关闭8年前。这是我第一次编写Factory类。下面是我的工厂类,我不确定这是否是创建线程安全单例工厂类的正确方法。我将使用该工厂返回我的客户实例吗?publicclassClientFactory{privatestaticClientFactoryinstance=null;privateClientFactory(){}publicstaticClientFactorygetInstance(){if(instanc

java - ActiveMQ Broker Factory 找不到用于故障转移的工厂类

尝试使用BrokerFactory创建ActiveMQ代理时出现此错误:java.io.IOException:Couldnotloadfailoverfactory:java.io.IOException:Couldnotfindfactoryclassforresource:META-INF/services/org/apache/activemq/broker/failoveratorg.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:27)atorg.apache.activemq.b

java - 对具有不同参数的类使用工厂模式

我有一个非常简单的工厂,它将一个枚举作为其参数之一来确定应该创建的对象的类型,以及一个对所有正在创建的对象通用的另一个参数。随着我为工厂添加更多类型来创建我的对象构造函数的参数开始不同,例如:publicclasssomeFactory{publicsomeFactory(){}publicSomeObjectnewObject(Typetype,Objectdata){returnthis.newObject(type,data,"");}publicSomeObjectnewObject(Typetype,Objectdata,ObjectstringOrObject){SomeO

java - 是否有任何工具使用 hamcrest Factory 注释?

我今天坐下来写一个匹配器,并决定快速浏览一下jmock文档以刷新我对该过程的内存,并注意到对org.hamcrest.Factory注释的引用。注释状态的文档。MarksaHamcreststaticfactorymethodsotoolsrecognisethem.Afactorymethodisanequivalenttoanamedconstructor.是否有任何工具实际使用此注释? 最佳答案 如theHamcresttutorial中所述,Factory注释被Hamcrest代码生成器org.hamcrest.genera

java - Class.newInstance() 是否遵循 "Abstract factory"设计模式?

我已经开始阅读JoshuaBloch的“EffectiveJava”(第二版)。在阅读第2项(在面对许多构造函数参数时考虑一个构建器)时,作者在Class.newInstance()方法中做了一个特别的陈述。具体来说,作者说ThetraditionalAbstractFactoryimplementationinJavahasbeenthe"Class"object,withthe"newInstance"methodplayingthepartofthe"build"method.这部分让我有点困惑-我对抽象工厂设计模式的理解是它用于表示工厂的工厂。在我看来,Class.newIns

java swing 与 mvc : is this pattern indeed possible?

我是swing的新手,但设法创建了一个下降的gui。但我的问题是我无法应用引用/教程中建议的模式,主要是MVC模式。是我的问题,还是在JTree中使用SwingWorker,无法将controller/view/model明确分离?例如,我使用Swingworker,但我无法在设计中“安装”Controller。即控件的Action本质上是在内部的doBackground方法中,例如按钮的Action执行。所以没有Controller类。swingworker中的操作结果是更新一个Jtree,所以我将结果传递给一个我命名为model的类,但是这个类必须能够访问JFrame内部Jtree

Rails Factory RSPEC测试失败,因为模型中的“唯一_integer”验证

我有一个用于模型“价格”的工厂,但是当我将价格验证为唯一的_integer时,所有RSPEC测试都开始失败。当我尝试使用RSPEC验证工厂时,我遇到的错误是“价格必须是整数”这是我的模型文件:classPricetrue,:numericality=>{only_integer:true}end这是我的价格:FactoryGirl.definedofactory:pricedoassociation:expertise,factory::expertise,strategy::createprice10#priceFaker::Number.between(1,1000).to_iendend