Articles → .NET DESIGN PATTERN → Interface Segregation Principal C#
Interface Segregation Principal C#
Scenario
- Children
- Serviceman
- Businessman
- 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();
}
}
- There is no relevance of car insurance for children
- No term insurance for old age people because according to the insurance company, the maximum age should be 40
- CarInsurance method is not relevant for the Children's class
- TermInsurance method is not relevant for the OldAge 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();
}
}