Initial commit
This commit is contained in:
commit
4f4397b3e1
48 changed files with 2002 additions and 0 deletions
14
interface-segregation-event/interface-segregation-event.iml
Normal file
14
interface-segregation-event/interface-segregation-event.iml
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
<component name="SonarLintModuleSettings">
|
||||
<option name="uniqueId" value="753620d6-4acf-4f38-b43f-8468316cd5c4" />
|
||||
</component>
|
||||
</module>
|
||||
55
interface-segregation-event/src/de/clientside/Main.java
Normal file
55
interface-segregation-event/src/de/clientside/Main.java
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
package de.clientside;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
import de.tiere.PigTooFatListener;
|
||||
import de.tiere.Schwein;
|
||||
|
||||
public class Main {
|
||||
|
||||
private Metzger metzger = new Metzger();
|
||||
private Spediteur spediteur = new Spediteur();
|
||||
public static void main(String[] args) {
|
||||
|
||||
new Main().run();
|
||||
}
|
||||
|
||||
private void run() {
|
||||
Schwein schwein = new Schwein("Miss Piggy");
|
||||
schwein.addPigTooFatListener(new SchweineMetzgerAdapter());
|
||||
schwein.addPigTooFatListener(s-> spediteur.fahren(s));
|
||||
schwein.addPigTooFatListener(spediteur::fahren);
|
||||
for (int i = 0; i < 11; i++) {
|
||||
schwein.fuettern();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
class SchweineMetzgerAdapter implements PigTooFatListener{
|
||||
|
||||
@Override
|
||||
public void pigTooFat(final Schwein dickesSchwein) {
|
||||
metzger.schlachten(dickesSchwein);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Metzger {
|
||||
|
||||
public void schlachten(final Object tier) {
|
||||
System.out.println("Messer wetz!");
|
||||
}
|
||||
}
|
||||
|
||||
class Spediteur {
|
||||
public void fahren(final Object ware) {
|
||||
System.out.println("Wir fahren auf der Autobahn");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
package de.tiere;
|
||||
|
||||
public interface PigTooFatListener {
|
||||
|
||||
void pigTooFat(Schwein dickesSchwein /* sender */);
|
||||
|
||||
}
|
||||
70
interface-segregation-event/src/de/tiere/Schwein.java
Normal file
70
interface-segregation-event/src/de/tiere/Schwein.java
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
package de.tiere;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Schwein {
|
||||
|
||||
private List<PigTooFatListener> pigTooFatListeners = new ArrayList<>();
|
||||
|
||||
public void addPigTooFatListener(PigTooFatListener listener) {
|
||||
pigTooFatListeners.add(listener);
|
||||
}
|
||||
|
||||
public void removePigTooFatListener(PigTooFatListener listener) {
|
||||
pigTooFatListeners.remove(listener);
|
||||
}
|
||||
|
||||
|
||||
private void firePigTooFatEvent() {
|
||||
for (PigTooFatListener pigTooFatListener : pigTooFatListeners) {
|
||||
pigTooFatListener.pigTooFat(this);
|
||||
}
|
||||
}
|
||||
|
||||
private String name;
|
||||
private int gewicht;
|
||||
|
||||
public Schwein() {
|
||||
this("nobody");
|
||||
}
|
||||
|
||||
public Schwein(String name) {
|
||||
this.gewicht = 10;
|
||||
this.name = name;
|
||||
}
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public int getGewicht() {
|
||||
return gewicht;
|
||||
}
|
||||
|
||||
private void setGewicht(int gewicht) {
|
||||
this.gewicht = gewicht;
|
||||
if(this.gewicht > 20) firePigTooFatEvent();
|
||||
}
|
||||
|
||||
public void fuettern() {
|
||||
|
||||
setGewicht(getGewicht() + 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("Schwein [name=");
|
||||
builder.append(name);
|
||||
builder.append(", gewicht=");
|
||||
builder.append(gewicht);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue