Abstract
Software design patterns are formalized best practices, which provide reusable solutions to commonly occurring design problems in a given context in software engineering. The aim of this study was to investigate how software design patterns can be combined to provide a wait-free abstraction layer over REST APIs on the low end of service maturity. We present an implementation of a possible “composite pattern” in C# and perform static analysis of the example source code to measure its maintainability, reusability, and testability. Thus, we collect five software quality metrics: Coupling Between Objects (CBO), Cyclomatic Complexity (CC), Depth of Inheritance (DIT), Lines of Code (NLOC) and Maintainability Index (MI). All of the classes involved in the implementation receive a very good score on all metrics. Our research suggests that this particular combination of design patterns is very useful, and that it may be a design pattern by itself. However, it has to be identified in other independent and unrelated systems for that to be true. Note that it may be challenging to integrate this solution into existing code bases due to its considerable structural requirements.