ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @Subscribe
ΠΊ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΈ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π΅Π΅ Π² ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ
ΠΊΠ»Π°ΡΡΠ°Ρ
?
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
abstract class Parent {
<strong i="8">@Subscribe</strong>
public abstract void sayHi(EventMessage em);
}
class ChildA{
public void sayHi(EventMessage em){
System.out.println("Hi I am ChildA");
}
}
ΠΡΠ΄Π΅Ρ Π»ΠΈ EventBus ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅?
ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ½Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Java Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ . Π’Π°ΠΊ ΡΡΠΎ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ ΡΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π― ΠΏΠΎΠ»Π°Π³Π°Ρ, Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π² ΡΠ²ΠΎΠ΅ΠΌ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅Π³ΠΎ Π² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°Ρ . ΠΡΠ»ΠΈ Π²Ρ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΠ΅ EventBus Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄.
ΠΡΠ°Π²ΠΈΡΡΡΡ
abstract class Parent {
<strong i="9">@Subscribe</strong>
public void sayHi(EventMessage em) {
}
}
class ChildA{
<strong i="12">@Override</strong>
public void sayHi(EventMessage em){
System.out.println("Hi I am ChildA");
}
}
-ΡΡ
Java Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ
Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄
Π²Π°ΡΠ΅ΠΌΡ ΠΊΠΎΠ΄Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡΡ ΡΡΠΎ:
abstract class Parent{
<strong i="8">@Subscribe</strong>
public void onEvent(Event event){
doEvent(event);
}
protected abstract void doEvent(Event event);
}
class Child{
<strong i="11">@Override</strong>
protected void doEvent(Event event){
// do something
}
}
Π‘ΠΌ. ΠΠ²Π° ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΡ ΠΏΡΡΠΈ Π²ΡΡΠ΅. ΠΡΡΠ°Π²ΠΈΠΌ ΡΡΠΎ ΠΎΡΠΊΡΡΡΡΠΌ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ Π·Π°Ρ ΠΎΡΠΈΠΌ ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°ΡΡ. -ΡΡ
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Java Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ
Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄
Π²Π°ΡΠ΅ΠΌΡ ΠΊΠΎΠ΄Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡΡ ΡΡΠΎ: