A kind of design pattern used for implementing a global accessible instance that saves time(lazy instantiation), buffering or other functions.
like interface in Java
UI technique
a function is a special closure.
both object-C and swift are object-oriented, and therefore they are compatible in the OO layer. Though having different grammar, object-C and swift are able to use the code and object of each other. Consequently, we are able to use third-party lib written in object-C or swift