http://pengguo.xyz/tutorial/2017/03/09/Swift-World-Design-Patterns-Singleton.html