草庐IT

Java 泛型与工厂

设置:我有一些格式化程序的接口(interface):interfaceFormatter{Stringformat(Titem);}我有一个工厂创建这样的格式化程序:publicclassFactory{publicstaticFormattercreate(){switch(something){caseSOMETHING:returnnewFormatter(){Stringformat(SomeItemitem){...}};caseSOMETHING_ELSE:returnnewFormatter(){Stringformat(OtherItemitem){...}};}现在

c# - 依赖注入(inject)导致工厂激增?

自从我一直在使用依赖注入(inject)原则以来,在处理需要实例化大量对象的类时,我总是感到不舒服。例如,假设我有一个类应该引发许多不同类型的事件。每个事件都有不同的类型,所以我要做的是为每个不同的事件类型设置不同的工厂。如果我有10个事件,那么我就必须有10个工厂。那似乎不太好。我也可以为所有不同类型的事件建立一个工厂,但这似乎也不太对。(对于C#人群,我在这里不是在谈论.NET的事件。这只是一个切入点的示例,只需将它们视为常规类即可!)这只是一个例子。我在这里或那里有一个工厂没有问题,但在某些类型的项目中,人们必须在运行时创建很多对象,似乎我必须为我定义的几乎每个类创建一个工厂!您

java - 设置要使用的JAXB上下文工厂初始化类

我已经更新了项目(基于Websphere8.5的JavaEE),以使用公司内部框架的新版本(以及Ejb3.x部署描述符,而不是2.x部署描述符)。从那时起,我的集成测试失败,但出现以下异常:[java.lang.ClassNotFoundException:com.ibm.xml.xlxp2.jaxb.JAXBContextFactory]我可以使用先前的框架版本来构建应用程序,并且一切正常。在调试时,我注意到ContextFinder(javax.xml.bind)中有两种不同的行为:先前版本(一切正常):所有地方都没有调出工厂类,因此将加载默认工厂类com.sun.xml.inte

java - 关于工厂模式的问题

很多人说他们在他们的项目中使用工厂模式。但是当我真正看到他们的实现时,它看起来完全不同根据定义,我在第一本书中读到了什么。在书中,他们描述了两种工厂模式,即FactoryMethod:-Aclassspecifiesitssub-classestospecifywhichobjectstocreatebasedonsomeparameter.SoweexpectheresomeabstractmethodinbaseclasswhihichwillbeimplementedbychildclassandpuposeofthatwillbetocreatesomeobjectAbstra

java - 克隆是否提供了优于构造函数/工厂方法的性能改进?

我正在维护一个较旧的Java代码库(jvm1.4),它似乎使用克隆作为对象实例化的替代方法,我猜这是一种性能优化。这是一个人为的例子:publicclassFoo{privateSomeObjectobj;//SomeObjectimplementsCloneablepublicFoo(){obj=newSomeObject();obj.setField1("abc");//thesefieldswillhavethesamevalueeverytimeobj.setField2("def");}publicvoiddoStuff(){SomeObjectnewObj=obj.clon

java - Google Guice 不就是另一个工厂吗?

我想实例化一个用户帐户。我可以使用这样的工厂:publicclassUserFactory{publicUsernewUser(UserTypetype){if(type==UserType.FREE)returnnewFreeUser();}}Useruser=UserFactory.newUser(UserType.FREE);//UserType.FREEisanenum现在如果我使用GoogleGuice,我必须编写一个“模块”:publicclassUserModuleextendsAbstractModule{publicvoidSetType(UserTypetype){

java - 如何保留 Map.of 工厂中的插入顺序?

Java9提供了Map.of()功能来轻松创建具有固定值的map。问题:我想创建一个保留插入顺序的映射,如LinkedHashMap。那家工厂可以吗?至少map.of()不保留顺序... 最佳答案 确实没有像LinkedHashMap::of这样的工厂方法,而且Map本身没有顺序,所以我看到它的唯一方式就是构建一个LinkedHashMap如果你真的需要一个。顺便说一下,来自theJEPitself:Staticfactorymethodsonconcretecollectionclasses(e.g.,ArrayList,Hash

java - osgi:使用服务工厂?

我目前正在尝试获取一个包含正在运行的服务工厂的简单包。这是我的工厂类:publicclassSvcFactoryimplementsServiceFactory{@OverridepublicServiceBgetService(Bundlebundle,ServiceRegistrationregistration){returnnewServiceBImpl();}@OverridepublicvoidungetService(Bundlebundle,ServiceRegistrationregistration,ServiceBservice){}}这是我的服务,应该由工厂创建

java - 如何 Autowiring 工厂bean

我有一个ServiceListFactoryBean,它创建了一个服务实现列表:我可以毫无问题地使用applicationContext访问服务:finalListservices=ctx.getBean("services",List.class));我也可以成功地使用tradconstructor-arg注入(inject):但是如果我尝试Autowiring依赖项@Autowired@Qualifier("services")privateListservices;然后我得到一个由引起的BeanCreationExceptionFatalBeanException:Noeleme

java - 工厂和泛型

我有以下类(class):publicinterfaceIDataSource{publicListgetData(intnumberOfEntries);}publicclassMyDataSourceimplementsIDataSource{publicListgetData(intnumberOfEntries){...}}publicclassMyOtherDataSourceimplementsIDataSource{publicListgetData(intnumberOfEntries){...}}我想使用一个根据数据类型返回正确实现的工厂。我写了以下内容,但收到“未经