z-logo
Premium
Evaluation of design pattern alternatives in Java
Author(s) -
Bijlsma Lex A.,
Kok Arjan J. F.,
Passier Harrie J. M.,
Pootjes Harold J.,
Stuurman Sylvia
Publication year - 2022
Publication title -
software: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.437
H-Index - 70
eISSN - 1097-024X
pISSN - 0038-0644
DOI - 10.1002/spe.3061
Subject(s) - software design pattern , computer science , design pattern , programming language , java , implementation , inheritance (genetic algorithm) , pattern language (formal languages) , structural pattern , function (biology) , domain (mathematical analysis) , specification pattern , object oriented programming , object oriented design , software engineering , object (grammar) , artificial intelligence , software design , software development , software , mathematics , mathematical analysis , biochemistry , chemistry , evolutionary biology , biology , gene
Design patterns are standard solutions to common design problems. The famous Gang of Four book describes more than twenty design patterns for the object‐oriented paradigm. These patterns were developed more than twenty‐five years ago, using the programming language concepts available at that time. Patterns do not always fit underlying domain concepts. For example, even when a concrete strategy is a pure function, the classical strategy pattern represents this as a separate subclass and as such obscures the intent of this pattern with extra complexities due to the inheritance‐based implementation. Due to the ongoing development of oo ‐languages, a relevant question is whether the implementation of these patterns can be improved using new language features, such that they fit more closely with the intent. An additional question is then how we can decide which implementation is to be preferred. In this article, we investigate both questions, using the strategy pattern as an example. Our main contribution is that we show how to reason about different implementations, using both the description of a design pattern and design principles as guidance.

This content is not available in your region!

Continue researching here.

Having issues? You can contact us here