T-106.1210 Ohjelmoinnin peruskurssi, osa 1

Kierros 9, tehtävä 3

Taso ja pistearvo:C 50
Lyhyesti:Yhdistetään projektit EnglishAuction ja DutchAuction.
Mitä opitaan:turhan toiston poistoa perintää käyttäen, ohjelman uudelleenrakentamista
Toteuttamisen vapaus:Vähäinen. Tässä ei varsinaisesti luoda uutta koodia vaan yhdistetään kaksi vanhaa tietyllä tavalla.
Realistisuus:Työtavan osalta korkea. Vanhan koodin muokkaus ja uudelleen rakentaminen ovat tärkeä keino ohjelmakoodin ylläpitämis- ja kehitystyössä.
Haastavuus:Keskitasoa. Tehtävän tekeminen edellyttää perinnän ymmärtämistä.
Työläys:Kevyehkö. Sujunee useimmilta parissa tunnissa, jos aiempi EnglishAuction-tehtävä on tehty. Muussa tapauksessa siihen perehtymiseen kuluu lisää aikaa.

Tehtävänanto

Edellisessä tehtävässä oli esillä luokka EnglishAuction. Projekteista löytyy DutchAuction ja vastaava luokka. Kumpikin näistä luokista kuvaa huutokauppoja ja luokilla on paljon yhteistä, vaikka ne myös eroavat merkittävästi toisistaan. DutchAuction-projektissa on myös luokka AuctionHouse, joka kuvaa huutokauppoja järjestäviä huutokauppakamareita. Siitä puuttuu kuitenkin sisältö.

Oletetaan, että olet jo tehnyt edellisen EnglishAuction -tehtävän ja sinulla on nyt kaksi luokkaa, EnglishAuction ja DutchAuction. On ilmeistä, että luokkien koodissa on paljon toistoa. Huutokauppojen kuvauksia kuvaava ilmentymämuuttuja on samanlainen molemmissa luokissa, get_starting_price-metodi on samanlainen, ja niin edelleen. Tästä turhasta toistosta on tarkoitus päästä eroon käyttäen perintää.

Muista, että EnglishAuction tarvitsee moduulia bid.

Tavoitteet on kuvattu tarkemmin annetussa dokumentaatiossa.

Testaa koodisi.

Palauttaminen

Palauttakaa laatimanne koodi Gobliniin.