Chain Of Responsibility
Example - Image processor
interface ImageTransformer {
void setNext(ImageTransformer transformer);
void resize(String image);
}
class JpegTransfomer implements ImageTransformer {
private ImageTransformer next;
@Override
public void setNext(ImageTransformer transformer) {
this.next = transformer;
}
@Override
public void resize(String image) {
if (image.endsWith(".jpeg")) {
System.out.println(getClass().getSimpleName() + " is processing: " + image);
} else {
if (next != null) {
next.resize(image);
}
}
}
}
class PngTransfomer implements ImageTransformer {
private ImageTransformer next;
@Override
public void setNext(ImageTransformer transformer) {
this.next = transformer;
}
@Override
public void resize(String image) {
if (image.endsWith(".png")) {
System.out.println(getClass().getSimpleName() + " is processing: " + image);
} else {
if (next != null) {
next.resize(image);
}
}
}
}Last updated