Singleton pattern
is a creational pattern – one of the three basic design pattern.
As the name describes, it’s something which deals with a single value or it works as a unique thing.
In programming, it’s a class which have only one object in the entire execution process.
According to a programming language, you’ll have to set up the class in such a way that only one object will be created in the entire process.
Prerequisites:
- Basic programming knowledge.
- A basic oops concept like what is class, method, property, etc.
- More understandable if you know PHP
In this, I’m going to use PHP as a programming language to implement the singleton pattern.
- Make constructor –
__contruct
method – private. - Make
__clone
method private or keep it public, but let you always return$this
variable. - Define a public static method to create an object of the same class.
- Define a private static variable to check if the object created or not. Or keep the created object in that variable and return the same value if requested – I’m going to return the same object created in the previous call. I’ll create one if it’s called first time, and I’ll store it in the static variable.
- <?php
-
- /**
- * Description of SingletonPattern
- *
- * @author Ahmad Asjad <ahmadcimage@gmail.com>
- */
- class SingletonPattern {
-
- public $param1;
- public $param2;
- private static $selfInstance;
-
- private function __construct($param1, $param2) {
- $this->param1 = $param1;
- $this->param2 = $param2;
- }
-
- public function __clone() {
- return $this;
- }
-
- /**
- * @param string $param1
- * @param string $param2
- * @return SingletonPattern
- */
- public static function getInstance($param1, $param2) {
- //Pass params to be passed to the constructor
- self::$selfInstance = new static($param1, $param2);
- }
- return self::$selfInstance;
- }
-
- }