Change Functionality without changing function( C# Architecture interview question with answers)?

In one of the interview I have been asked following question. Let’s say I have a class called ReportGenerator which has a simple function called GetReport.

This function have been used in CEO screen where it function will return reports of everybody in the company.

Now let say in future we have been asked to create two more screens. Manager UI and Employee UI. GetReport function will behave differently for this two screens. Like,

  • Whenever Manager call that function he should get reports of all of his employees.
  • When Employee call it, he/she will get only his/her report. 

But when CEO calls this function, it will behave just like before. Means it will return everything.

Solution

  • Add a new parameter called CallerType of type integer to exiting GetReport function.
  • Add an If….else condition and return the correct report based on value of CallerType.

Problem with this solution –
In programming this scenarios is termed as scenario which violatesOCP (Open closed principle). Which says we should not change the existing software modules.

What happen if we violate OCP?
When GetReport function get changed there is high possibility of getting errors in CEO Screen (which was working before).

What will be the actual solution?
It was a design time decision. While designing the system we should have made GetReport function virtual. It make us override its functionality in new Derived class. After that we will just use derived class in Manager and Employee Screen

Below is a nice c# scenario based architecture interview question video.

About C#.NET, ASP.NET MVC Core, Angular, Azure, (MSBI)Business Intelligence, Data Science - Python Interview Questions

This blog is for developers who want to crack .NET and C# interviews. It has all tips and tricks needed to crack .NET interviews , C# interview , SQL Server interview , Java interview , WCF Interview , Silverlight interview , WPF interview , LINQ interview , Entity framework Interview. Do not forget to watch our Learn step by step video series. ASP.NET MVC Interview Questions and Answers:- https://youtu.be/pXmMdmJUC0g C# Interview Questions and Answers:- https://youtu.be/BKynEBPqiIM Angular Interview Questions and Answers:- https://youtu.be/-jeoyDJDsSM C# tutorial for beginners(4 hrs.):- https://youtu.be/AxEGRBFwlmI Learn Azure Step by Step:- https://youtu.be/wdUK7bCMXqs Azure AZ-900 fundamentals certification :- https://youtu.be/hC9iGgJorz8 AZ- 204 certification Azure:- https://youtu.be/qI8PRn2C080 Learn Angular tutorial step by step https://tinyurl.com/ycd9j895 Learn MVC 5 step by step in 16 hours:- https://youtu.be/Lp7nSImO5vk Learn Design Pattern Step by Step https://goo.gl/eJdn0m Learn MSBI Step by Step in 32 hours:- https://goo.gl/TTpFZN Learn SQL Server Step by Step http://tinyurl.com/ja4zmwu Python Tutorial for Beginners:- https://youtu.be/KjJ7WzEL-es Learn Data Science in 1 hour :- https://tinyurl.com/y5o7qbau Learn Power BI Step by Step:- https://tinyurl.com/y6thhkxw Learn Tableau step by step :- https://tinyurl.com/kh6ojyo
This entry was posted in Uncategorized and tagged , , , , . Bookmark the permalink.

Leave a comment