举几个常见的设计模式?

设计一个工厂模式的时候回遵循哪些原则?

列举一个使用了Visitor/Decorator模式的开源项目/库吗?

你在编码时最常用的设计模式有哪些?在什么场景下用?

如何实现一个单例?

代理模式?

JDK源码里面有些什么让你印象深刻的设计模式使用?举例说明。