jjzjj

observer-pattern

全部标签

java - 并发观察者模式

如果我遇到如下情况:ObserverA、ObserverB、ObserverC都继承自AbstractObserver。我创建了一个观察者列表:Listlist=newArrayList();list.add(newObserverA());list.add(newObserverB());list.add(newObserverC());并且具有以下方法的某种处理程序在“主”线程中运行:publicvoideat(Fooditem){for(AbstractObservero:list){o.eatFood(item);}}publicvoiddrink(Coffeecup){for

java - RxJava - 在另一个 Observable 完成时启动一个 Observable

我有两个具有不同泛型类型的Observable:Observableo1和Observableo2我被定义为o1onComplet()和onNext()函数,我希望当这个Observable完成时,o2可以开始。我尝试了Observable.concat()但它们有不同的类型,所以这种方法不起作用......那么我该怎么做呢? 最佳答案 在concatWith之前使用castAs(ignoreElements也很有用):Observableo1;Observableo2;Observableo3=o1.ignoreElements(

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 - 类型安全的通用 Java 观察器编译时错误

要求我正在尝试编写一对Observer/Observable类。我想对Observer进行参数化,以便可以进行类型安全的更新调用。想象一下这个版本:classViewimplementsObserver{@Overridepublicvoidupdate(Modelmodel){render(model);}//nocasting:)}而不是这个需要转换的版本:classViewimplementsObserver{@Overridepublicvoidupdate(Objectmodel){render((Model)model);}//casting:(}尝试这是我目前所拥有的。我

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

java - 从 JavaFX 开始 - JavaFX 版本和 "development patterns"问题

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion我正计划开始开发桌面应用程序,但直到现在,对我来说,桌面=swing。我对此做了一些研究,发现自己遇到了一些问题:我发现有很多JavaFX版本:有人说JavaFX1.0已经过时;有非常好的JavaFX2.X;现在是JavaFX8(这对吗?);但即使使用带有JDK8(1.8.0)的最新NetBeansIDE版本(8.0),当我创建JavaFX应用程序时,它也会开始使用JavaFX2.2–JavaFX8真的是

java - 监视对集合的更改

假设您有以下javabean:publicclassMyBean{privateListnames=newArrayList();publicvoidaddName(Stringname){names.add(name);fireNamesPropertyChange(name);}}您通常如何为集合实现属性更改事件?您是否尝试使用index属性,它似乎更适用于数组而不是集合? 最佳答案 (注意:我在意识到自己的一些错误后更新了这篇文章,所以这不是原来的,而是更精致的)为此,我将创建两个新接口(interface),ListList