Articles → .NET → Interface Segregation Principal C#
Interface Segregation Principal C#
- 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
- There is no relevance of providing medical insurance to a serviceman because their employer has already opted the insurance for their employees (because of the government policy).
- No term insurance for old age people because according to the insurance company, maximum age should be 40.
- CarInsurance method is not relevant for Children class.
- MedicalInsurance method is not relevant for ServiceMan class.
- TermInsurance method is not relevant for 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();
}
}