n; cout << "Make a selection [1] Home [2] Purchase [3] Search [4] Exit" <<endl ; cin>>n; switch (n) case 1: home->go ( () ; break; case 2: pur->go () i break; case 3 : sur->go ( ( ) ; break; case 4 : ext->go() ; break; default: cout<<"Wrong choice"<<endl; ext->go() ; break; void main () MedInf *x = new Mediator(); x->navigate () ; // Output of the mediator program is shown in Figure 33.7. "D:\desktop_08_09\refer\DesignPatterns\Mediator\Debug\Mediator.exe Make a selection [1 ]Home [2 Purchase [3 ]Search [4]Exit In home page Make a selection [1 ]Home [2 2 Purchase [3 Search [4]Exit In Purchase page Make a selection [1 JHome [2 ]Purchase [3]Search [4]Exit In Search page Make a selection [1 ]Home [2 : Purchase [3 Bearch [4]Exit Exiting Press any key to continue. Figure 33.7 Output obtained on executing mediator program. Fundamentals of EMS, NMS and OSS/BSS 33.9 Conclusion The important note the author wants to convey from this chapter is that knowledge of the business logic is not enough to develop a good man- agement solution. The service developers need to have a good under- standing of the programming language used, the best practices in the programming language, and the design patterns that can be used to implement an effective OSS solution for commercial use. This chapter only details some of the design patterns that are used in OSS development. There are many more design patterns that are used. For example, when the service developer wants to hide the connection details to a server module a remote proxy design pattern can be used and when state transitions are involved a state method or state object pattern can be used. The choice of design pattern is based on the specific problem that is to be addressed. Additional Reading 1. Erich Gamma, Richard Helm, Ralph Johnson, and John M. Vlisside. Design Patterns: Elements of Reusable Object-Oriented Software. United Kingdom: Addison-Wesley Professional, 1994. 2. Elisabeth Freeman, Eric Freeman, Bert Bates, and Kathy Sierra. Head First Design Patterns. California: O'Re