Hide metadata

dc.contributor.authorÅrseth, Eirik Emil Neesgaard
dc.date.accessioned2020-10-15T23:45:45Z
dc.date.available2020-10-15T23:45:45Z
dc.date.issued2020
dc.identifier.citationÅrseth, Eirik Emil Neesgaard. The Difficult Art of Combining Design Patterns with Modern Programming Languages. Master thesis, University of Oslo, 2020
dc.identifier.urihttp://hdl.handle.net/10852/80629
dc.description.abstractSoftware design patterns are high-level design solutions to common occurring problems within software development. The topic of this study is the relationship between design patterns and modern programming languages, and whether or not design patterns are replaceable by language features. The main contribution of this thesis is a classification scheme: Previous discussion of language support for design patterns, lack nuance. Our research show that the different classifications of support, that a language can exhibit for a pattern, exists on a spectrum. We propose a model that establish four different classifications of support, as opposed to a binary model, that only consists of the two classifications, supported and unsupported. This classification scheme is used for analysing concrete pattern-language relationships. The patterns Singleton, Strategy, Command, Decorator, Prototype, Iterator and Proxy are implemented in multiple languages, including Emerald, Java, JavaScript, Python and Scala. By applying our proposed classification scheme, the level of support the languages show for the different patterns is determined. Singleton is the only pattern shown to be completely redundant, i.e., fully supported, in some languages. The six other patterns are all shown to have partial support in one or more languages. Object model, lambda functions, prototypical inheritance, library features and dynamic typing are the language features that the pattern support is attributed to, in the examined patterns. Results confirm that design patterns and programming languages are two closely related concepts. The study indicates that some patterns are replacements for missing language features, whereas others are independent of language.eng
dc.language.isoeng
dc.subjectdesign patterns
dc.subjectprogramming languages
dc.titleThe Difficult Art of Combining Design Patterns with Modern Programming Languageseng
dc.typeMaster thesis
dc.date.updated2020-10-15T23:45:44Z
dc.creator.authorÅrseth, Eirik Emil Neesgaard
dc.identifier.urnURN:NBN:no-83720
dc.type.documentMasteroppgave
dc.identifier.fulltextFulltext https://www.duo.uio.no/bitstream/handle/10852/80629/1/A-rseth.pdf


Files in this item

Appears in the following Collection

Hide metadata