Versions Compared

Key

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

...

En Twitter-konto kan følge andre Twitter-kontoer og motsatt: en Twitter-konto kan bli fulgt av andre Twitter-kontoer. Dette er altså en gjensidig kobling: Hvis konto A følger konto B, så er konto B fulgt av konto A. I tillegg har hver Twitter-konto en mengde tweets, som er små, korte tekster. En tweet hører til den kontoen den ble sendt fra. Hvis noen finner en annen sin tweet interessant har man muligheten til å retweete denne. Da lager man en tweet som refererer til originalen, og (implisitt) får original-tweeten sin tekst. Merk at i en kjede av retweets, så vil alle referere til samme original-tweet. Mao., hvis tweet B er en retweet av A og tweet C er en retweet av B, vil både tweet B og C ha A som original-tweet, slik det er vist til venstre under.

Tweet-klassen

 

Tweet skal ha to konstruktører, en for hver måte å tweete på:

 

  • Tweet(TwitterAccount, String) - En ny original-tweet

  • Tweet(TwitterAccount, Tweet) - En retweet av Tweet-argumentet. Utløser et passende unntak, hvis en original-tweeten er fra samme konto.

PlantUML Macro
object "A: Tweet" as tweet1 {
	text = "Kvitre-kvitre"
}

object "B: Tweet" as tweet2 {
	text = "Kvitre-kvitre"
}

object "C: Tweet" as tweet3 {
	text = "Kvitre-kvitre"
}

tweet2 -down-> tweet1: "originalTweet"
tweet3 -down-> tweet1: "originalTweet"

Riktig objektstruktur, når #2 B er en retweet av #1 A og #3 C er en retweet av #2B

PlantUML Macro
object "A: Tweet" as tweet1 {
	text = "Kvitre-kvitre"
}

object "B: Tweet" as tweet2 {
	text = "Kvitre-kvitre"
}

object "C: Tweet" as tweet3 {
	text = "Kvitre-kvitre"
}

tweet2 -down-> tweet1: "originalTweet"
tweet3 -down-> tweet2: "originalTweet"

Feil objektstruktur, når #2 B er en retweet av #1 A og #3 C er en retweet av #2

Tweet skal ha to konstruktører, en for hver måte å tweete på:

...

Tweet(TwitterAccount, String) - En ny original-tweet

...

B

Tweet skal ha metodene:

  • String getText() - returnerer teksten til en tweet

  • TwitterAccount getOwner() - returnerer kontoen som tweeten kom fra

  • Tweet getOriginalTweet() - returnerer original-tweeten, hvis den er en retweet, ellers null.

TweetAccount-klassen

TwitterAccount skal ha konstruktøren:

...

På Twitter kan man markere en annen sin tweet som en favoritt. Implementer passende metoder for å kunne gjøre dette. En konto må ha oversikt over hvilke tweets den har markert som favoritter, og en tweet må vite hvem og hvor mange som har markert den som favoritt. Hva synes du burde skje hvis man markerer en retweet som en favoritt?

 

Include Page
Bunntekst for JExercise-oppgaver
Bunntekst for JExercise-oppgaver