singleton pattern is a design pattern that restricts the instantiation of a class to one object.