首先声明,对于设计模式其实不用去深究,只用了解。最重要是理解为什么这样做。设计模式的本身就是为了解决某些特定的问题而产生的,乱用设计模式反而造成不良后果。
有一本C#的23种面向对象设计模式的书不错,但不是java语言的,不过思想是一样的。如果你懂java应该能看懂。