Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}

 

marit.addChild(jens)

hallvard.addChild(jens)

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}
marit -> jens: children
jens -> marit: mother
hallvard -> jens: children
jens -> hallvard: father 

Opprettelse av koblinger med addChild.

(Samme effekt som under)

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}

 

jens.setMother(marit)

jens.setFather(hallvard)

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}
marit -> jens: children
jens -> marit: mother
hallvard -> jens: children
jens -> hallvard: father 

Opprettelse av koblinger med setMother og setFather.

(Samme effekt som over)

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}
marit -> jens: children
jens -> marit: mother
hallvard -> jens: children
jens -> hallvard: father

 

marit.removeChild(jens)

hallvard.removeChild(jens)


PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}

 

 

Fjerning av koblinger med removeChild.

(Samme effekt som under)

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}
marit -> jens: children
jens -> marit: mother
hallvard -> jens: children
jens -> hallvard: father 

 

jens.setMother(null)

jens.setFather(null)

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}

Fjerning av koblinger med setMother og setFather.

(Samme effekt som over)

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}
object "torkel: Person" as torkel {
}
object "jorunn: Person" as jorunn {
}
marit -> jens: children
jens -> marit: mother
hallvard -> jens: children
jens -> hallvard: father 

jens.setFather(torkel)

jens.setMother(jorunn)

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}
object "torkel: Person" as torkel {
}
object "jorunn: Person" as jorunn {
}
jorunn -> jens: children
jens -> jorunn: mother
torkel -> jens: children
jens -> torkel: father 
Fjerning og oppretting av kobling med setMother og setFather, en slags "adoption".

Oppgaven er delt i to trinn, den første håndterer children- og mother/father-rollen isolert og uten krav om konsistens, mens det andre skal sikre konsistens.

...

Utvid metodene til å sikre konsistens. Test at det fortsatt virker å koble opp din egen familie, denne gangen ved å bare bruke addChild og ved å bare bruke setMother og setFather. Kjør JUnit-testene som hører til oppgaven.

Testkode for denne oppgaven finner du her: objectstructures/PersonTest.java. Originalkoden (jextest) for testen finner du her: objectstructures/Person.jextest.

...