jjzjj

observer-pattern

全部标签

Java Pattern.matcher() 在匹配包含\n 的行时卡住

我遇到了一个我觉得很有趣的问题。我主要通过正则表达式对文本文件进行一些基本的解析,并且在匹配这一行时它总是卡住ftrect0.703157.03139.856155.5313"FREIGABE\nQ09_SV01"没有抛出异常;该程序只是挂起。我正在发布重现这种情况的程序片段;评论的一个是可能的标准情况,但另一个是有问题的。如果你删除\n它会工作,但这些解析的文件来自“黑盒”系统。我当然可以做一个解决方法,我只是觉得有趣的是它实际上卡住了,希望有人能解释发生了什么。我在JDK6u22和JDK7u21上试过了...publicstaticPatternFTRECT_PATTERN=Pat

java - 在 Java 中实现观察者模式时避免暴露实现细节?

我从C#转到Java,在C#中事件是一等公民,事件处理程序可以是私有(private)方法。我现在正在开发一个Java项目,我当然需要使用观察者模式来实现事件。由于Observer需要将其监听器/处理程序回调方法公开给Observable类,这似乎是将Observer的细节实现公开给其他无关的类。我可以将对这些方法的访问设置为包级别,这将使这些实现细节对我的包的消费者隐藏,但它对我来说仍然有难闻的“气味”。这只是我需要咬紧牙关还是有更好的方法? 最佳答案 使用观察者模式,您正在观察的类不需要公开它们的实现。通知其他类的类通常会有自己

java - 带线程的观察者模式

我想运行多个线程并在我的主要方法结束时加入它们,这样我就可以知道它们何时完成并处理一些信息。我不想将我的线程放在一个数组中并一个一个地执行join(),因为join是一种阻塞方法,我会在主线程中等待一些仍在运行的线程,而其他线程可能有已经完成,没有可能知道。我考虑过为我的线程实现观察者模式的可能性:一个带有update()方法的接口(interface),一个从线程扩展(或实现可运行)的抽象类,带有用于监听器的set和get方法,以及一个开始的类我所有的线程并等待它们完成。如果我的理解是正确的,观察者不会在线程的特定join()中阻塞。相反,它将以某种方式等待,直到线程调用update

java - 观察者模式与 MVC

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我想知道观察者模式和MVC之间有什么区别。我在学校有一些用Java编写MVC程序的经验,但没有观察者模式的经验。(有人告诉我观察者模式意味着我在Java中使用了Observer类......我认为这不是一个好的答案。)请帮我解决以下问题,谢谢lotttttt。它们之间有什么区别?观察者模式不为Controller使用单独的类?观察者模式和MVC有什么关系?

java - 正则表达式疯狂 : java. util.regex.Pattern 匹配器进入高 CPU 循环

注意:我看过这个question,但还没有人回答,所以帮助不大。奇怪的是,被标记为“可能重复”的问题已被删除(我第一次看到。)我们在使用Pattern进行正则表达式验证时遇到问题。这些都没有发生在我们的代码中,整个事情都发生在SpringFramework和Hibernate的验证中。(Spring3.2.1,Spring3.1.1,Hibernate验证4.2.0)此调用尝试使用@Valid注释验证SpringFramework@ModelAttribute注释:@RequestMapping("/foo/bar")publicStringdoFooBar(@Valid@ModelA

java - 排除子目录的过滤器映射 url-pattern

有什么方法可以使过滤映射不包含子目录吗?例如。我的上下文根目录中有.xhtml文件,我还有一个名为“test”的子文件夹,其中包含具有相同扩展名的文件。是否可以将过滤器映射到上下文根目录中的文件而不是“测试”目录中的文件? 最佳答案 url-pattern确实在匹配上有限制。它只允许精确、前缀或后缀匹配。不是中间/整体/正则表达式匹配。所以例如/*.xhtml你打算做的是行不通的。如果您想在/test中排除XHTML只有文件夹,那么你最好的是Filter收听url-pattern的*.xhtml在doFilter()中基本上完成以下

java - 将 Observables 收集到列表似乎不会立即发出集合

我使用RxJava基本上收集单独发出的Observable列表,并将它们组合成Observable列表(本质上与flatMap相反)。这是我的代码://myEvent.findMemberships()returnsanObservable>myEvent.findMemberships().flatMap(newFunc1,Observable>(){@OverridepublicObservablecall(Listmemberships){Listusers=newArrayList();for(Membershipmembership:memberships){users.ad

java - 在避免 java 中的 instanceof 运算符的同时观察多个可观察对象?

如果我有一个对象,我希望能够观察到其他几个可观察对象,而不是所有的相同类型。例如,我希望A能够观察B和C。B和C完全无关,除了它们都实现了Observable。显而易见的解决方案是在更新方法中使用“ifinstanceof”,但很快就会变得困惑,因此我想知道是否还有其他方法? 最佳答案 一个干净的解决方案是在A中使用(匿名)内部类来充当Observer。例如:classA{publicA(Bb,Cc){b.addObserver(newBObserver());c.addObserver(newCObserver());}priva

责任链模式(Chain of Responsibility Pattern)

责任链模式说明责任链模式(ChainofResponsibilityPattern)属于行为型模式,它是指使多个对象都有机会处理请求,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。从而避免请求的发送者和接收者之间的耦合关系。结构责任链模式主要角色如下:抽象处理者(Handler):定义处理请求的接口,并维护了下一个处理者的引用;具体处理者(ConcreteHandler):根据需求实现处理请求的接口,如果处理不了,则交个下一个处理者处理。代码案例抽象处理者(Handler)/***@program:chain*@description:抽象员工类,抽象处理者(Hand