Abstrakti luokka vai rajapinta uudelleenkäytettävyyden näkökulmasta

Autor: Räihä, Rauno
Jazyk: finština
Rok vydání: 2013
Předmět:
Popis: 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.
Databáze: OpenAIRE