增加了单例模式和建造者模式