1. Design Patterns: Elements of Reusable Object-Oriented Software;Gamma,1994
2. Refactoring to Patterns;Kerievsky,2004
3. What do we know about the effectiveness of software design patterns;Zhang;IEEE Trans. Softw. Eng.,2012
4. Iterators and encapsulation;von Dincklage,2000
5. Classes as layers: Rewriting design patterns with COP: Alternative implementations of decorator, observer, and visitor;Masuhara,2016