Design Pattern adalah sebuah istilah (English) dalam Rekayasa PerangkatLunak (Software Engineering) yang mengacu kepada solusi umum yangdapat digunakan secara berulang kali untuk menyelesaikan masalah-masalah umum yang ditemukan dalam disain perangkat lunak. Sebuah design pattern tidak berbentuk solusi akhir yang dapat langsungditerjemahkan menjadi kode program. Design pattern merupakan penjelasan atau template yang menunjukkanbagaimana cara menyelesaikan sebuah masalah yang kemudian dapatdigunakan di berbagai situasi yang berbeda-beda. Design pattern untuk object-oriented biasanya menunjukkan relasi dan interaksi antar kelas danobjek, tanpa menjelaskan kelas dan objek akhir yang terlibat dalam sebuahaplikasi. Algoritma biasanya tidak disebut sebagai design pattern, karenaalgoritma akan menjadi solusi masalah komputasi dan bukan masalahdisain Ada banyak Design Patterns yang sudah diakui kemampuannya, diterima dan diaplikasikan oleh banyak praktisi. Design Patterns yang cukup pop