You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

----- Utkast -----

 

I denne oppgaven skal du lage en begrenset klone av Twitter. Du skal ha to klasser: TwitterAccount og Tweet.

En Twitter-konto kan følge andre Twitter-kontoer og en twitter-konto kan bli fulgt av andre Twitter-kontoer. I tillegg har hver Twitter-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 skal ha to konstruktører:

  • 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.

TwitterAccount skal ha konstruktøren:

  • TwitterAccount(String) - som tar inn brukernavnet

TwitterAccount skal ha metodene:

  • 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?

  • No labels