Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Pattern languages of program design
Pattern languages of program design
Industrial experience with design patterns
Proceedings of the 18th international conference on Software engineering
Large-scale C++ software design
Large-scale C++ software design
A Validation of Object-Oriented Design Metrics as Quality Indicators
IEEE Transactions on Software Engineering
Object-oriented application frameworks
Communications of the ACM
Dynamic class loading in the Java virtual machine
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Data structures and algorithms with object-oriented design patterns in C++
Data structures and algorithms with object-oriented design patterns in C++
Peopleware (2nd ed.): productive projects and teams
Peopleware (2nd ed.): productive projects and teams
C++ Report
Design patterns Java workbook
Beyond Software Architecture: Creating and Sustaining Winning Solutions
Beyond Software Architecture: Creating and Sustaining Winning Solutions
A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions
IEEE Transactions on Software Engineering
Refactoring to Patterns
Design Patterns C#
Hi-index | 0.00 |
The application of a design pattern in an industrial context is frequently a much more involved task than is described the pattern description itself. In this experience paper we report on a number of problems encountered in the application of several common patterns in commercial software systems. The problems we examine range in nature from details of the runtime environment that hamper pattern implementation (Singleton), to the software upgrade process breaking a pattern's promise (Abstract Factory), to the consequences of the tight source code coupling produced by pattern application (Facade). Our conclusion is that while design patterns are indeed useful in industrial software development, there are more potential pitfalls in this area than is generally realised. In applying a design pattern, more must be taken into account than just the design context into which the pattern fits; issues to do with the low-level runtime environment as well as the higher-level software architecture, software process and social environment also play a role.