小编Adi*_*a W的帖子

观察者模式与事件驱动方法的区别

我总是发现观察者模式几乎与通常的事件驱动方法类似.实际上,我几乎相信他们实际上只是指同一件事的不同名称.他们都使用类似的概念来作为一个监听器,甚至在实现中,它们几乎是相同的东西,那就是有一个回调方法/函数来执行一个动作.这至少在Java中.

在其他语言中说Actionscript/Flex,事件更加用户友好,并且可能看起来不仅仅是观察者模式定义.但是,这些概念听起来仍然相同.

但这是真的吗?观察者模式是否与通常的事件驱动编程风格相同?

events design-patterns observer-pattern

61
推荐指数
6
解决办法
3万
查看次数

47
推荐指数
4
解决办法
3万
查看次数

Facade模式和abstarct工厂模式之间有什么区别?

我不是在问采访的观点.我想知道在struts框架等项目中实现的实时场景.

java design-patterns facade abstract-factory

30
推荐指数
3
解决办法
1万
查看次数

有没有办法确定是否已在Java类中重写了某个方法

我希望能够确定基类方法是否已被子类重写,因为在调用它之前需要昂贵的设置,并且我们系统中的大多数子类都不会覆盖它.可以使用反射提供的方法句柄进行测试吗?或者是否有其他方法来测试类方法是否被覆盖?

例如

class BaseClass {
    void aMethod() { // don nothing }

    protected boolean aMethodHasBeenOverridden() {
        return( // determine if aMethod has been overridden by a subclass);
    } 
}
Run Code Online (Sandbox Code Playgroud)

java oop overriding

26
推荐指数
2
解决办法
1403
查看次数

Java类级别锁定与对象级别锁定

如果线程T1通过获取类级别锁定进入方法m1,这是否意味着另一个线程T2无法通过获取对象级别锁定来运行不同的方法m2?

java multithreading locking

21
推荐指数
5
解决办法
4万
查看次数

建筑师设计模式的缺点

使用构建器设计模式的缺点是什么.有没有?

编辑 - 我想知道使用构建器设计模式是否有任何不良后果?正如GOF书中所述,他们提到了设计模式的好坏后果.但他们没有提到建筑师设计模式的任何不良后果.

java oop design-patterns builder

17
推荐指数
2
解决办法
9971
查看次数

双重调度如何在访客模式中工作?

我正在研究与访问者模式相关的其他问题,但无法理解访问者模式中双重调度的实现.

请参阅访问者模式链接

双重调度如何在访客模式中工作?

java design-patterns double-dispatch visitor-pattern

16
推荐指数
3
解决办法
9060
查看次数

为什么并发标记和清除(CMS)没有像Full GC那样清理相同数量的内存?

我的一台生产机器有一个奇怪的问题.它托管一个执行CMS(并发标记和扫描)的Java应用程序,但它只清理了旧一代的一小部分.我怀疑内存泄漏并尝试了堆转储.但堆转储之前的Full GC几乎清除了所有旧代.发生了什么?我从未见过Java垃圾收集的这种行为.通常CMS和Full GC应该收集大约相同数量的垃圾,现在CMS保持大约10GB以上.

  • Java 1.7.0_75
  • Linux Cent OS 7

GC日志:

**2016-01-04T07:37:40.196+0000: 431200.698: [GC [1 CMS-initial-mark: 21633423K(27336704K)] 22826703K(30101504K), 4.3910840 secs] [Times: user=4.40 sys=0.01, real=4.39 secs] 
2016-01-04T07:37:44.588+0000: 431205.090: [CMS-concurrent-mark-start]
2016-01-04T07:38:08.718+0000: 431229.220: [CMS-concurrent-mark: 18.213/24.131 secs] [Times: user=126.00 sys=2.22, real=24.13 secs] 
2016-01-04T07:38:08.718+0000: 431229.220: [CMS-concurrent-preclean-start]
2016-01-04T07:38:08.843+0000: 431229.345: [CMS-concurrent-preclean: 0.118/0.125 secs] [Times: user=0.29 sys=0.00, real=0.12 secs] 
2016-01-04T07:38:08.843+0000: 431229.345: [CMS-concurrent-abortable-preclean-start]
 CMS: abort preclean due to time 2016-01-04T07:38:13.906+0000: 431234.408: [CMS-concurrent-abortable-preclean: 4.975/5.063 secs] [Times: user=10.18 sys=0.03, real=5.06 secs] 
2016-01-04T07:38:14.001+0000: 431234.503: [GC[YG occupancy: 1312993 K (2764800 K)]2016-01-04T07:38:14.001+0000: 431234.503: [Rescan (parallel) …
Run Code Online (Sandbox Code Playgroud)

java garbage-collection heap-memory concurrent-mark-sweep

14
推荐指数
1
解决办法
3036
查看次数

"适配器"或"适配器"?

在编程中,哪个拼写适配器或适配器是标准或事实上的标准?它们之间有区别吗?

在boost中我看到"适配器",而在文献中我看到"适配器".

代码中首选哪一个?

design-patterns terminology adapter

13
推荐指数
4
解决办法
1万
查看次数

Java API中的Builder模式示例?

Joshua Bloch的Effective Java描述了一个Builder模式,可用于构建具有多个可选定制参数的对象.他为Builder函数建议的命名约定,"模拟在Ada和Python中找到的命名可选参数",似乎不符合Java的标准命名约定.Java函数往往依赖于使用动词来启动函数,然后依靠基于名词的短语来描述它的作用.Builder类只有该函数定义的变量的名称.

Java标准库中是否有使用Builder模式的API?我想在继续使用之前,将本书中的建议与核心Java库集中的实际实现进行比较.

java design-patterns builder

13
推荐指数
4
解决办法
1万
查看次数