Abstrakti luokka vai rajapinta uudelleenkäytettävyyden näkökulmasta
Tämä kandidaatintutkielma on kirjallisuuskatsaus. Tutkielman tutkimuskysymys on, tarjoaako abstrakti luokka paremman uudelleenkäytettävyyden
kuin rajapinta. Tutkielmassa noudatettiin EBSE-menetelmää. Tutkielmassa havaitaan, että kuluja, joita syntyy ohjelmistokehityksessä voidaan vähentää uudelleenkäyttämällä ohjelmakoodia. Tutkielmassa saatiin tulokseksi, että uudelleenkäytettävyyttä edistävät kapselointi, matala kytkösaste, korkea koheesio ja perintä. Uudelleenkäytettävyyttä haittaa heikko ymmärrettävyys. Perintä ja koostaminen ovat keinoja, joilla koodia voidaan uudelleenkäyttää. Tutkielmassa havaittiin, että abstraktin luokan ja rajapinnan keskeisin ero on se, että abstraktilla luokalla voidaan määritellä myös toteutusta. Niinpä jos käyttökonteksti tunnetaan huonosti ja on hyvin
muutosaltis on rajapinta turvallisempi vaihtoehto koska se ei rajaa uudelleenkäytettävyyttä samaan tapaan kuin abstrakti luokka. Abstrakti luokka on hyvä, jos halutaan määritellä attribuutteja tai toiminnallisuutta, jolla on toteutus.
...
This bachelor’s thesis is a review of the literature. The research question
for this study is whether an abstract class offers better reusability than interface.
The EBSE method was followed in this thesis. Expenses of software development
can be reduced by reusing software code. Thesis results were that factors that promote reusability are encapsulation, loose coupling, high cohesion and inheritance.
Poor undestandability weakens the possibility for reuse. Inheritance and composition are ways of reusing software code. Observation made in the thesis is that the
most significant difference between abstract class and interface is that abstract class
can also define implementation. Therefore if the context of use is not know very
well and is likely to change then interface is more safer alternative than abstract
class, because it does not delimit reusability in the same way as abstract class does.
Abstract class is good when there is a need to define attributes or functionality that
has implementation.
...
![showless](/themes/JYX2//images/showless.png)
![showmore](/themes/JYX2//images/showmore.png)
![showless](/themes/JYX2//images/showless.png)
![showmore](/themes/JYX2//images/showmore.png)
Metadata
Näytä kaikki kuvailutiedotKokoelmat
- Kandidaatintutkielmat [5304]
Samankaltainen aineisto
Näytetään aineistoja, joilla on samankaltainen nimeke tai asiasanat.
-
Luokittelu ja perintä reaalimaailmasta oliosuuntautuneeseen ohjelmointiin
Laiho, Pauli (2022)Oliosuuntautunut ohjelmointi on erittäin suosittu tapa mallintaa ohjelmistoja. Oliot ja oliomainen ajattelutapa on kuitenkin merkittävästi ohjelmointia vanhempia käsitteitä ja niitä on tutkittu laajasti sekä filosofiassa ... -
Web-sovellusohjelmointi Scala-ohjelmointikielellä
Parpala, Joni (2021)Nykyisten web-sovellusten kasvavat vaatimukset painostavat etsimään ratkaisuja tavanomaisten ohjelmointiparadigmojen ulkopuolelta. Tässä tutkielmassa selvitetään, miten funktio-ohjelmoinnin ja olio-ohjelmoinnin perusperiaatteita ... -
Ohjelmointi 1 : jotta tietokoneisiin voitaisiin luottaa myös tulevaisuudessa : versio 1.5 07.09.2010
Hyvönen, Martti; Lappalainen, Vesa (Jyväskylän yliopisto, 2010) -
Decorative images' effect on the cognitive load of computer programming learning
Mäkelä, Ella (2023)Kognitiivinen kuormitusteoria pyrkii kehittämään ohjeistuksia, jotka helpottavat oppimisen aikana koettavaa henkistä kuormitusta. Useita periaatteita on kehitetty kognitiivisen kuormituksen luontaisten, ulkoisten ja ... -
Java-sovelluksen ajonaikaisen muistin käytön optimointi
Rautiainen, Pasi (2024)Selvitetään kirjallisuudesta muistinkulutuksen vähentämisen keinoja Java-sovelluksessa. Miten ajonaikaista muistinkulutusta voidaan opitimoida. Tutkielmassa selvitetään myös mitä syitä on muistinkulutukseen. Tässä tutkielmassa ...
Ellei toisin mainittu, julkisesti saatavilla olevia JYX-metatietoja (poislukien tiivistelmät) saa vapaasti uudelleenkäyttää CC0-lisenssillä.