How to implement only few signature of an Interface ? #AspNetInterviewQuestionsSeries
lets make this question situational :) .An interviewer can ask you like this :
Possible solutions are to this situation are as follows :
Code Text :
Hope my this series will help somebody to get a job :) :) . Happy coding :)
Lets suppose i am having an Interface and this Interface consisting five methods signatures.This Interface is already being consumed by our thousand of customer and now new customer came and asked that we need only three method inside that. what will you do to resolve this situation or what will you suggest to your customer ?
- Implement that Interface using an Abstract class and mark those methods as abstract which you don't want to implement.
- If class should be concrete then you can implement rest of the functions and throw exceptions like NotImplementedException or NotSupportedException .
- Last you can segregate that Interface further into two interface and implement those in class.But then in above scenario it will become a tough situation.
Code Text :
using System; public class Program { public static void Main() { ConcreteClass C = new ConcreteClass(); C.DoSomethingElse3(); } public interface Iinterface { void DoSomething(); void DoSomethingElse(); void DoSomethingElse1(); //customer dont want to implemnet below ones void DoSomethingElse2(); void DoSomethingElse3(); } //Solution 1 : create an abstract class public abstract class MyClass: Iinterface { public void DoSomething(){} public void DoSomethingElse(){} public void DoSomethingElse1(){} // Mark those Abstract which you dont want to implement public abstract void DoSomethingElse2(); public abstract void DoSomethingElse3(); } //Solution 2 : Use these keywords NotImplementedException/NotSupportedException public class ConcreteClass : Iinterface { public void DoSomething(){} public void DoSomethingElse(){} public void DoSomethingElse1(){} // keywords NotImplementedException/NotSupportedException public void DoSomethingElse2() { throw new NotSupportedException(); } public void DoSomethingElse3() { throw new NotImplementedException(); } } // Solution 3 : Segregate interface into logical units this should how we design our application in the beginning, }
0 comments:
Post a Comment