02. Interface Segregation

 

EXAMPLE 01



Issue:

interface Vehicle {
void dive();
void fly();
}

class Car implements Vehicle {
@Override
public void dive() {System.out.println("InterfaceSegregation.Car dive");}

@Override
public void fly() {
//This not needed to a bike
}
}

Fixing That issue:

interface DrivingVehicle {void dive();}
interface FlyingVehicle {void fly();}

class Car implements DrivingVehicle {
@Override
public void dive() {System.out.println("InterfaceSegregation.Car dive");}

}

class Plane implements DrivingVehicle,FlyingVehicle {
@Override
public void dive() {System.out.println("InterfaceSegregation.Plane dive");}

@Override
public void fly() {System.out.println("InterfaceSegregation.Plane fly");}
}


EXAMPLE 02


Issue:

class PetrolEngine{}

class Vehicle{
private PetrolEngine engine;
Vehicle(PetrolEngine engine){this.engine=engine;}
}

Fixing That issue:

interface Engine{}
class PetrolEngine implements Engine{}
class DieselEngine implements Engine{}

class Vehicle{
private Engine engine;
Vehicle(Engine engine){this.engine=engine;}
}


Comments

Popular posts from this blog

Database - Topics

02. Spring – Creating spring project clone it with GIT step by step.