开闭原则
单例模式