Design patterns offer the best possible and time tested slution for a known problem which software programmers usually try to solve. Think of a common problem, only one instance must exist, and so Singleton pattern comes for best possible solution.