My Favorite Design Patterns and When I Actually Use Them
DOI:
https://doi.org/10.63282/3050-9246.IJETCSIT-V3I3P107Keywords:
Design Patterns, Software Architecture, Strategy Pattern, Factory Pattern, Singleton, Observer, Dependency Injection, Adapter Pattern, Case Study, Real-world Software DevelopmentAbstract
Design patterns are actual tools that help to produce these attractive, scalable, and maintainable software, not just theoretical conceptions. Inspired not by theoretical books but from actual experience in the actual world of software development, this essay offers my favorite design patterns. I investigate their relevance and utility in feature toggling and the flexibility of the Factory concept in API integrations. Rather than a whole catalog, this is a personal story showing how several patterns helped to resolve more complex code, improve team communication, and enable system flexibility to change. Each design's decision is based more on its relevance to ongoing problems in these production environments than on popularity. I also consider certain mistakes such over-engineering with patterns that brought complexity rather than clarityand how such encounters improved my judgment. I stress the lessons learned, the trade-offs assessed, and the complex nuances of pattern application often missed in formal explanations. The article ends with a case study combining several of these patterns to build a modular microservices platform under these strict limitations and changing demands, therefore anchoring theory in reality. This is meant for you if you have ever thought about the essence of design patterns as well as the suitable situations and justification for their use
Downloads
References
[1] Beck, Kent, et al. "Industrial experience with design patterns." Proceedings of IEEE 18th International Conference on Software Engineering. IEEE, 1996.
[2] Crawford, William, and Jonathan Kaplan. J2EE design patterns: patterns in the real world. " O'Reilly Media, Inc.", 2003.
[3] Chase, Chelsea. Using design patterns in user interface design. University of Cincinnati, 2012.
[4] Arugula, Balkishan. “Implementing DevOps and CI CD Pipelines in Large-Scale Enterprises”. International Journal of Emerging Research in Engineering and Technology, vol. 2, no. 4, Dec. 2021, pp. 39-47
[5] Shalloway, Alan, and James R. Trott. Design patterns explained: a new perspective on object-oriented design. Pearson education, 2004.
[6] Talakola, Swetha. “Analytics and Reporting With Google Cloud Platform and Microsoft Power BI”. International Journal of Artificial Intelligence, Data Science, and Machine Learning, vol. 3, no. 2, June 2022, pp. 43-52
[7] Allam, Hitesh. “Resilience by Design: Site Reliability Engineering for Multi-Cloud Systems”. International Journal of Emerging Research in Engineering and Technology, vol. 3, no. 2, June 2022, pp. 49-59
[8] Lewis, Chris. Irresistible Apps: Motivational design patterns for apps, games, and web-based communities. Apress, 2014.
[9] Vasanta Kumar Tarra, and Arun Kumar Mittapelly. “Future of AI & Blockchain in Insurance CRM”. JOURNAL OF RECENT TRENDS IN COMPUTER SCIENCE AND ENGINEERING ( JRTCSE), vol. 10, no. 1, Mar. 2022, pp. 60-77
[10] Holzner, Steve. Design patterns for dummies. John Wiley & Sons, 2006.
[11] Datla, Lalith Sriram, and Rishi Krishna Thodupunuri. “Applying Formal Software Engineering Methods to Improve Java-Based Web Application Quality”. International Journal of Artificial Intelligence, Data Science, and Machine Learning, vol. 2, no. 4, Dec. 2021, pp. 18-26
[12] O'reilly, Tim. "What is Web 2.0: Design patterns and business models for the next generation of software." (2007): 17-37.
[13] Jani, Parth. “Integrating Snowflake and PEGA to Drive UM Case Resolution in State Medicaid”. American Journal of Autonomous Systems and Robotics Engineering, vol. 1, Apr. 2021, pp. 498-20
[14] Sangaraju, Varun Varma. "AI-Augmented Test Automation: Leveraging Selenium, Cucumber, and Cypress for Scalable Testing." International Journal of Science And Engineering 7 (2021): 59-68
[15] Gamma, Erich. Design patterns: elements of reusable object-oriented software. Pearson Education India, 1995.
[16] Mohammad, Abdul Jabbar, and Seshagiri Nageneini. “Temporal Waste Heat Index (TWHI) for Process Efficiency”. International Journal of Emerging Research in Engineering and Technology, vol. 3, no. 1, Mar. 2022, pp. 51-63
[17] Vasanta Kumar Tarra. “Policyholder Retention and Churn Prediction”. JOURNAL OF RECENT TRENDS IN COMPUTER SCIENCE AND ENGINEERING ( JRTCSE), vol. 10, no. 1, May 2022, pp. 89-103
[18] Laurillard, Diana. Teaching as a design science: Building pedagogical patterns for learning and technology. Routledge, 2013.
[19] Jani, Parth. “AI-Powered Eligibility Reconciliation for Dual Eligible Members Using AWS Glue”. American Journal of Data Science and Artificial Intelligence Innovations, vol. 1, June 2021, pp. 578-94
[20] Kupunarapu, Sujith Kumar. "AI-Enhanced Rail Network Optimization: Dynamic Route Planning and Traffic Flow Management." International Journal of Science And Engineering 7.3 (2021): 87-95.
[21] Zichermann, Gabe, and Christopher Cunningham. Gamification by design: Implementing game mechanics in web and mobile apps. " O'Reilly Media, Inc.", 2011.
[22] Veluru, Sai Prasad. "Leveraging AI and ML for Automated Incident Resolution in Cloud Infrastructure." International Journal of Artificial Intelligence, Data Science, and Machine Learning 2.2 (2021): 51-61.
[23] Talakola, Swetha. “Leverage Microsoft Power BI Reports to Generate Insights and Integrate With the Application”. International Journal of AI, BigData, Computational and Management Studies, vol. 3, no. 2, June 2022, pp. 31-40
[24] Datla, Lalith Sriram, and Rishi Krishna Thodupunuri. “Designing for Defense: How We Embedded Security Principles into Cloud-Native Web Application Architectures”. International Journal of Emerging Research in Engineering and Technology, vol. 2, no. 4, Dec. 2021, pp. 30-38
[25] Abdul Jabbar Mohammad. “Cross-Platform Timekeeping Systems for a Multi-Generational Workforce”. American Journal of Cognitive Computing and AI Systems, vol. 5, Dec. 2021, pp. 1-22
[26] Buschmann, Frank, Kelvin Henney, and Douglas Schimdt. Pattern-Oriented Software Architecture: On Patterns And Pattern Language, Volume 5. Vol. 5. John wiley & sons, 2007.
[27] Balkishan Arugula, and Pavan Perala. “Multi-Technology Integration: Challenges and Solutions in Heterogeneous IT Environments”. American Journal of Cognitive Computing and AI Systems, vol. 6, Feb. 2022, pp. 26-52
[28] Norman, Don. Emotional design: Why we love (or hate) everyday things. Basic books, 2007.
[29] Kupunarapu, Sujith Kumar. "AI-Enabled Remote Monitoring and Telemedicine: Redefining Patient Engagement and Care Delivery." International Journal of Science And Engineering 2.4 (2016): 41-48.
[30] Larman, Craig. Applying UML and patterns: an introduction to object oriented analysis and design and interative development. Pearson Education India, 2012.
[31] Allam, Hitesh. Exploring the Algorithms for Automatic Image Retrieval Using Sketches. Diss. Missouri Western State University, 2017.
[32] Veluru, Sai Prasad. "Threat Modeling in Large-Scale Distributed Systems." International Journal of Emerging Research in Engineering and Technology 1.4 (2020): 28-37.
[33] Fowler, Martin. Refactoring: improving the design of existing code. Addison-Wesley Professional, 2018.
[34] Koster, Raph. Theory of fun for game design. "O'Reilly Media, Inc.", 2013.
[35] Sreekandan Nair, S., & Lakshmikanthan, G. (2021). Open Source Security: Managing Risk in the Wake of Log4j Vulnerability. International Journal of Emerging Trends in Computer Science and Information Technology, 2(4), 33-45. https://doi.org/10.63282/d0n0bc24