Popis: |
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. |