S in SOLID — Single Responsibility Principal

SOLID adalah arsitektur untuk OOP yang diperkenalkan oleh Robert C Martin, atau yang lebih dikenal sebagai Uncle Bob.

SOLID sendiri adalah singkatan dari :

  • S — Single Responsibility
  • O — Open Close Principle
  • L — Liskov Substitution Principle
  • I — Interface Segregation Principle
  • D — Dependency Inversion

Apa itu?

SOLID architecture intinya adalah bagaimana kita mendesain aplikasi kita agar mudah diubah, dimaintain dan dikembangkan lebih jauh. SOLID juga membuat developer lebih mudah menemukan bugs, menghindari smelly code, dan gampang di-refactor.

S — Single Responsibility Principle

Single Responsibility Principle adalah prinsip yang mengatur bahwa satu kelas / method itu hanya mempunyai satu tugas. Ini juga dikenal sebagai separation of concern. Contoh konkrit dalam iOS adalah ViewController.

ViewController iOS selain me-render view, juga kadang dipakai untuk mengambil data, memparsing data, dan juga memilih data yang akan ditampilkan. Contohnya adalah ini :

Di dalam method viewDidAppear itu, saya melakukan banyak hal.

Makanya itu violating SRP. Jika kita ingin merefactor, kita bisa memasukkan query ke database ke dalam satu class sendiri. Sehingga class ViewController tersebut menjadi seperti :

Sekarang, ViewController sudah diet, sudah berkurang banyak barisnya, dan lebih mudah dibaca apa yang dilakukannya. Dengan begini code kita akan lebih mudah dimaintain. Jika kita ingin melakukan perubahan misalnya ganti database dengan remote database macam firebase, kita bisa dengan mudah melakukannya dengan mengganti ProductDataAdapter tanpa harus memberi tahu si ViewController tentang perubahan tersebut.

NB: Saya convert code lama saya menggunakan Swiftify, sehingga saya tidak tahu apakah code di atas akan jalan atau tidak. But you got the idea.