PoxiDP: An experimental Policy based Flexible Design Patterns Library
Karan Panjabi, Lamya Bhasin, N. L. Murali Krishna, Neelam Sanjeev Kumar
Abstract
Karan Panjabi, Lamya Bhasin, N. L. Murali Krishna, Neelam Sanjeev Kumar
Abstract
Design Patterns are design solutions to commonly recurring problems in Computer Science. When implemented, a design pattern is expected to have more than one coding solution for a given problem. This leads to a load of boilerplate code being written every time a pattern needs to be written. We have explored a number of mechanisms such as metaprogramming, reflection, and policy-based paradigms to develop flexible design pattern libraries for different languages including C++, Java, Python, and Go. The libraries follow a plug-and-play model with ready-to-use APIs. We have implemented parameterized design pattern APIs in different categories such as creational, structural, and behavioral. We have also added some implementations involving concurrency-related concepts to patterns wherever applicable. The implementations of the patterns are adjusted according to the design philosophies of the given languages.
A significance statement is not available in the OpenAlex record.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Design Patterns are design solutions to commonly recurring problems in Computer Science. When implemented, a design pattern is expected to have more than one coding solution for a given problem. This leads to a load of boilerplate code being written every time a pattern needs to be written. We have explored a number of mechanisms such as metaprogramming, reflection, and policy-based paradigms to develop flexible design pattern libraries for different languages including C++, Java, Python, and Go. The libraries follow a plug-and-play model with ready-to-use APIs. We have implemented parameterized design pattern APIs in different categories such as creational, structural, and behavioral. We have also added some implementations involving concurrency-related concepts to patterns wherever applicable. The implementations of the patterns are adjusted according to the design philosophies of the given languages.
Key concepts: Software design pattern, Computer science, Programming language, Design pattern, Metaprogramming, Implementation, Python (programming language), Generic programming