Initial commit

This commit is contained in:
Alexander Kobjolke 2025-03-13 22:36:51 +01:00
commit 4f4397b3e1
48 changed files with 2002 additions and 0 deletions

View 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>

View 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");
}
}

View file

@ -0,0 +1,7 @@
package de.tiere;
public interface PigTooFatListener {
void pigTooFat(Schwein dickesSchwein /* sender */);
}

View 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();
}
}