----- Utkast -----
Excerpt |
---|
I denne oppgaven skal du lage en begrenset klone av Twitter. Du skal ha to klasser: TwitterAccount og Tweet. |
En twitterTwitter-konto kan følge andre twitterTwitter-kontoer og en twitter-konto kan bli fulgt av andre twitterTwitter-kontoer. I tillegg har hver twitterTwitter-konto ingen, en eller flere tweets. Der tweets er små korte tekster. Hvis noen finner en annen sin tweet interessant har man muligheten til å retweete denne. Da lager man en tweet med samme tekst, men som også husker den opprinnelige tweeten. Hvis tweet B er en retweet av A og tweet C er en retweet av B vil fremdeles A regnes opprinnelsestweeten til både B og C.
...
Tweet(TwitterAccount, String) - En ny tweet
Tweet(TwitterAccount, Tweet) - En retweet. Utløser IllegalStateException hvis en konto retweeter seg selv.
Tweet skal ha metodene:
getText() - returnerer teksten til en tweet
getOwner() - returnerer eieren til tweeten
getOriginalTweet() - returnerer tweeten den stammer fra. Hvis ikke en tweet er en retweet stammer den fra seg selv.
...
getUsername() - returnerer brukernavnet
follow(TwitterAccount account) - start å følge account
unfollow(TwitterAccount account) - slutt å følge account
isFollowing(TwitterAccount account) - returnerer om denne kontoen følger account
isFollowedBy(TwitterAccount account) - returnerer om account følger denne kontoen
tweet(String) - lager en ny tweet
retweet(Tweet t) - retweeter t
getTweet(int i) - returner tweet nummer i, der 1 er den nyeste, 2 den nest nyeste, …
getTweetCount() - returner antall tweets til kontoen
Trinn 1
- Implementer Tweet-klassen.
- For å teste klassen må du sende inn TwitterAccount-objekter i konstruktøren. Lag en mock av TwitterAccount-klassen der du kun implementerer konstruktøren og evt. en passende toString(). Dette gjør det mulig å teste Tweet-klassen din uten at du må implementere hele TwitterAccount-klassen først.
Trinn 2
- Implementer TwitterAccount-klassen.
- Test klassen og dens samspill med Tweet-klassen ved å lage Twitter-konto for deg selv og noen av vennene dine. La noen av kontoene følge hverandre, tweete og retweete.
Frivillig utvidelse
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?