工厂方法、抽象工厂、单例模式