1. Idé
I dette kapittelet skal vi lage en forenklet versjon av Twitter. Vår versjon skal kunne:
- opprette brukere
- la brukere skrive tweets
- vise en global feed med alle tweets
- vise tweets for én bestemt bruker
Klassediagram
Section titled “Klassediagram”Koden skal bestå av klassene Twitter, Bruker og Tweet.
Twitterskal holde oversikt over alle brukere og samle tweets til en global feedBrukerskal eie tweets og kunne lage nye tweetsTweetskal lagre informasjon om én tweet
classDiagram
Twitter --* Bruker
Bruker --* Tweet
Tweet --> Bruker
class Twitter {
list~Bruker~ brukere
lag_global_feed() list~Tweet~
lag_bruker(brukernavn: str) Bruker
finn_bruker(brukernavn: str) Bruker
}
class Bruker {
str brukernavn
list~Tweet~ tweets
lag_tweet(tekst: str) None
}
class Tweet {
int id
str tekst
Bruker bruker
}
Mermaid-kode
classDiagram Twitter --* Bruker Bruker --* Tweet Tweet --> Bruker
class Twitter { list~Bruker~ brukere lag_global_feed() list~Tweet~ lag_bruker(brukernavn: str) Bruker finn_bruker(brukernavn: str) Bruker }
class Bruker { str brukernavn list~Tweet~ tweets lag_tweet(tekst: str) None }
class Tweet { int id str tekst Bruker bruker }Relasjoner mellom klasser
Section titled “Relasjoner mellom klasser”Strekene i klassediagrammet viser relasjoner mellom klassene.
classDiagram Twitter --* Bruker Bruker --* Tweet Tweet --> Bruker
Twitter --* BrukerBruker --* TweetTweet --> BrukerDette betyr:
- Ett
Twitter-objekt har mangeBruker-objekter - Ett
Bruker-objekt har mangeTweet-objekter - Hver
Tweethar en referanse tilbake tilBruker-objektet som opprettet den
De to første relasjonene er komposisjoner:
- Tweets eksisterer som en del av en bruker
- Brukere eksisterer som en del av Twitter-systemet
Den siste relasjonen er en assosiasjon:
- Hver tweet vet hvilken bruker som skrev den
- Dette gjør det enkelt å navigere begge veier: fra bruker til tweets, og fra tweet til bruker
Neste del
Section titled “Neste del”I neste del skal vi lage den første klassen i kode: Tweet.