java中常用到的设计模式,包括单例模式,工厂模式,建造模式门面模式等详细的解释