Articles → .NET DESIGN PATTERN → Interface Segregation Principal C#

Interface Segregation Principal C#






Scenario






  1. Children
  2. Serviceman
  3. Businessman
  4. Old age people


public interface IInsurance {
	void CarInsurance();
	void MedicalInsurance();
	void TermInsurance();
}





public class Children: IInsurance {
	public void CarInsurance() {
		throw new NotImplementedException();
	}

	public void MedicalInsurance() {
		throw new NotImplementedException();
	}

	public void TermInsurance() {
		throw new NotImplementedException();
	}
}
public class ServiceMan: IInsurance {
	public void CarInsurance() {
		throw new NotImplementedException();
	}

	public void MedicalInsurance() {
		throw new NotImplementedException();
	}

	public void TermInsurance() {
		throw new NotImplementedException();
	}
}

public class BusinessMan: IInsurance {
	public void CarInsurance() {
		throw new NotImplementedException();
	}

	public void MedicalInsurance() {
		throw new NotImplementedException();
	}

	public void TermInsurance() {
		throw new NotImplementedException();
	}
}

public class OldAge: IInsurance {
	public void CarInsurance() {
		throw new NotImplementedException();
	}

	public void MedicalInsurance() {
		throw new NotImplementedException();
	}

	public void TermInsurance() {
		throw new NotImplementedException();
	}
}





  1. Car insurance is not relevant for children.
  2. There is no term insurance for elderly people because, according to the insurance company, the maximum age should be 40.


  1. The CarInsurance method is not relevant for the Children's class.
  2. The TermInsurance method is not relevant for the Old Age class.



Interface Segregation Principle For Rescue




public interface ICarInsurance {
	void CarInsurance();
}

public interface IMedicalInsurance {
	void MedicalInsurance();
}
public interface ITermInsurance {
	void TermInsurance();
}





public class Children: IMedicalInsurance {

	public void MedicalInsurance() {
		throw new NotImplementedException();
	}
}
public class ServiceMan: ICarInsurance,
ITermInsurance {

	public void CarInsurance() {
		throw new NotImplementedException();
	}

	public void TermInsurance() {
		throw new NotImplementedException();
	}
}

public class BusinessMan: ICarInsurance,
IMedicalInsurance,
ITermInsurance {

	public void CarInsurance() {
		throw new NotImplementedException();
	}

	public void MedicalInsurance() {
		throw new NotImplementedException();
	}

	public void TermInsurance() {
		throw new NotImplementedException();
	}
}

public class OldAge: ICarInsurance {

	public void CarInsurance() {
		throw new NotImplementedException();
	}
}






Posted By  -  Karan Gupta
 
Posted On  -  Thursday, June 4, 2015

Query/Feedback


Your Email Id
 
Subject
 
Query/FeedbackCharacters remaining 250