Pattern transformation for two-dimensional separation of concerns
WU Xiao-qing, Barrett R. Bryant, Jeff Gray, Marjan Mernik · ACM SIGSOFT Software Engineering Notes · 2005
Design patterns are utilized in software development to decouple individual concerns, so that a change in a design decision is isolated to one location of the code base. However, multidimensional concerns exist in software development and therefore no single design pattern offers a panacea toward addressing problems of change evolution. By analyzing the matrix of concerns during the software development process and utilizing transferable aspect-orientation and object-orientation, a pattern transformation based two-dimensional separation of concerns is described, which integrates the benefits derived from the Inheritance pattern and several GoF patterns. An example implementation is shown using Java and AspectJ.