layout editorial Object-Oriented Programming Introduce Abstract Type Role & Responsibility & Cooperation Function & Structure SOLID Design Pattern Adapter Facade