ied Programmer Removed Administrator got notified Engineer got notified Press any key to continue_ Figure 33.3 Output obtained on executing observer program. Fundamentals of EMS, NMS and OSS/BSS 33.5 Factory Design Pattern Overview: This pattern is used to eliminate the scenario of frequent change in core code. In this pattern the core code is moved to a factory where decision logic is implemented. The changes specific to an implementation are moved, which ensures that the core code is not complex. Example of usage in telecom management programming: This pattern is quite common in telecom management application development where ever the pro- grammer finds the core code is becoming complex due to frequent changes being introduced. A typical example of the usage of this pattern is in implementing con- nection logic with multiple databases. The factory class only decides what database to connect, while the actual implementation of connection logic for a specific data- base is coded in a separate class. Implementation: // Factory Design Pattern // ver0.0 Jithesh Sathyan Aug 03, 2009 #include <iostream.h> static enum { Oracle_type, MySql_type } ; class connection public: virtual description ( ) cout<< "Generic connection" <<<endl; class Oracle: public connection public: // code for Oracle connection description ( ) cout<. "Oracle connection established" <<endl<<endl; OSS Design Patterns class MySql: public connection public: // code for MySql connection description ( ) cout<< "MySql connection established"<<endl; class Factory private: int connectType; public: Factory (int t) connectType = t; connection* createConnection ( ) // Decision making implemented inside Factory switch (connectType) { case Oracle_type: return new Oracle() ; break; case MySql type: return new MySql(); break; default: cout<<"Error. Contact Jithesh"<<endl break; void main ( ) Factory *fact ; fact = new Factory (Oracle type) ; connection *con = fact->createConnection (); con->description ( ) ; Fundamentals of EMS, NMS and OSS/BSS "D:\desktop_08_0