Created
May 14, 2020 05:00
-
-
Save ahojukka5/0bdceb430d00c7ee8e8bddf5985412f8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Main4 { | |
static class Data1 { | |
int data = 5; | |
int getData() { | |
return data; | |
} | |
void setData(int data) { | |
this.data = data; | |
} | |
} | |
static class Data2 { | |
int data = 10; | |
int acquireData() { | |
return data; | |
} | |
void resetData(int data) { | |
this.data = data; | |
} | |
} | |
interface DataInterface<T> { | |
int getData(T data); | |
void setData(T data, int newData); | |
} | |
static class Manipulator<T> { | |
void manipulate(DataInterface<T> iface, T data) { | |
int oldData = iface.getData(data); | |
System.out.println(oldData); | |
iface.setData(data, oldData + 1); | |
} | |
} | |
public static void main(String[] args) { | |
Data1 D1 = new Data1(); | |
Data2 D2 = new Data2(); | |
Manipulator<Data1> M1 = new Manipulator<>(); | |
Manipulator<Data2> M2 = new Manipulator<>(); | |
DataInterface<Data1> if1 = new DataInterface<Data1>() { | |
@Override | |
public int getData(Data1 data) { | |
return data.getData(); | |
} | |
@Override | |
public void setData(Data1 data, int newData) { | |
data.setData(newData); | |
} | |
}; | |
DataInterface<Data2> if2 = new DataInterface<Data2>() { | |
@Override | |
public int getData(Data2 data) { | |
return data.acquireData(); | |
} | |
@Override | |
public void setData(Data2 data, int newData) { | |
data.resetData(newData); | |
} | |
}; | |
M1.manipulate(if1, D1); | |
M2.manipulate(if2, D2); | |
M1.manipulate(if1, D1); | |
M2.manipulate(if2, D2); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment