tern The Proxy Design Pattern The Mediator Design Pattern The C++ programming language has been used to implement the patterns. Each pattern description has three parts in this chapter. The first part gives the pattern overview. The second part details a specific management application area where the Fundamentals of EMS, NMS and OSS/BSS pattern can be used. The third part gives the implementation of the pattern. It is advised skipping the implementation details if the reader is not familiar with C++. 33.2 Singleton Design Pattern Overview: This pattern is used to restrict the number of instances of a class to one object. Normally when an instance of a class is created with the "new" operator, a new object of the class is created. When a singleton pattern is used, the object of a class is created only once and the same object gets reused on subsequent instantia- tion requests. This is useful when exactly one object is needed to coordinate actions across the system. Example of usage in telecom management programming: In object oriented programming the socket creation and manipulation is usually encapsulated in a singleton class to ensure that when two processes interact, the same socket object is reused for interaction between the two pro- cesses, without unnecessary creation of new sockets for interaction. The network will be shown in the NMS solution with a tree diagram where data is collected from multiple element management solutions. The root or base node under which the branches corresponding to different element man- agers are created can be designed as a singleton. This ensures that all element managers create branches under the same singleton object and a change in attributes of root object is reflected in all branches. Implementation: // Singleton Design Pattern // ver0.0 Jithesh Sathyan Aug 02, 2009 #include <iostream. h> class singleton private: static singleton *p; singleton ( ) public: static singleton* returnAdd( ( ) OSS Design Patterns // Additional check required for multithreaded applications if(p