/*To see difference in Observer Pattern*/
//https://medium.com/@ahmedrizwan/kotlin-design-patterns-the-observer-fc8e5a702b4c
interface ValueChangedListener{
void onValueChange(String text);
}
class Printer implements ValueChangedListener{
@Override
public void onValueChange(String text) {
System.out.println(text);
}
}
class ObservableObject {
private ValueChangedListener listener;
private String text;
public ObservableObject(ValueChangedListener listener) {
this.listener = listener;
}
public void setText(String text) {
if (text != this.text) {
this.listener.onValueChange(text);
}
this.text = text;
}
}
class Main {
public static void main(String[] args) {
ObservableObject sample = new ObservableObject(new Printer());
sample.setText("Bekir");
sample.setText("Bekir");
sample.setText("Hasan");
}
}