Sebelum masuk ke design pattern, kita akan bahas dahulu SOLID Principle.
SOLID adalah akronim untuk 5 prinsip desain dalam software engineering. Bertujuan agar desain software lebih mudah dipahami, fleksible dan mudah dimaintain.
SOLID terdiri dari
- Single Responsibility Principle: setiap class hanya memiliki satu responsibility.
- Open Closed Principle: Terbuka untuk extension, namun tertutup untuk modification.
- Liskov Substitution Principle: Fungsi yang menggunakan pointer/references terhadap base class harus dapat menggunakan object dari class turunannya.
- Interface Segretation Principle: Menggunakan banyak client-specific interface lebih baik dibandingkan satu general-purpose interface.
- Dependency Inversion Principle: Tergantung pada abstractions, bukan concretions.
The SOLID akronim diperkenalkan pada Tahun 2004, oleh Michael Feathers.