Konu biraz saçma oldu gibi fakat gerçekten benim için bir sorun.
Çoğu şeyi birden fazla kez kullanmıyorum. Kullandıklarımı da fonksiyonlarla yapabiliyorum. OOP’ye yeni geçtiğim için birkaç deneme yaptım ve amacıma ulaştım da fakat çok anlamsız / gereksiz geliyor. Class’lar ne gibi durumlarda kullanılabilir?
Sınıflar aslında gerçek veya soyut nesneleri modellemek için ortaya atılmış. Gerçek nesneye arabayı verebiliriz. Arabanın özellikleri:
Hız
Beygir gücü
Motor hacmi
Arabanın işlevleri(Metodları):
İleri git
Geri git
Vites değiştir
Bagajı aç
Biz arabayla ilgili bir uygulama geliştiriyorsak arabaya ait kullanacağımız metodları ve özellikleri barındıran bir sınıf tanımlamayı tercih ederiz. Elbette bu işlerin hepsini sınıflar olmadan da yapabiliriz. Ancak 200 tane arabaya ihtiyacımız olduğunda sınıf kullanmak daha okunaklı ve verimli oluyor.
Bir başka örnek daha önce yazdığım satranç uygulamasından geliyor. Tahtada 64 tane kare var. Her kare için belirli özellikleri tek tek tanımlamak yerine bir sınıf tanımlamak daha kolay oldu.
İlk başlarda çok normal bir bakış açısı. Eğer hobi olarak yapıyorsanız boşverin öğrenmeyin. İşiniz düştüğünde yani “İşte burada bir sınıfa ihtiyacım var.” dediğinizde gelir öğrenirsiniz. Nasıl olsa belgeler burada veya başka bir yerde duracak.
Siz, daha yeni öğrendiğiniz için biraz “gereksiz” bulabilirsiniz, ben de başlarda nerede kullanacağımı bulamamıştım ama Nesne Tabanlı Programlama Anlayışı ile yazılmış binlerce program olduğunu da unutmamak lazım.
Mesela herhangi bir işletim sisteminin en temel özelliği olan “bir programı birden fazla kez çalıştırabilme”, Nesne Tabanlı Programlamayı gayet güzel özetliyor aslında. (İsterseniz detaylandırabilirim)
Hatta bir zaman sonra, öyle hoşuma gitmeye başladı ki, kullanılmasına gerek olmayan yerlerde bile kullanır olmuştum. Çünkü fonksiyonları sıralamak, isim alanlanlarını eşitlemek için global ve nonlocal deyimlerini kullanmak ve programı okunaklı hale getirmeye çalışmak gibi pek çok dertten ya kurtarıyor, ya da kolaylaştırıyor. Yine de işin dozunu kaçırmamak lazım.
Özetle Nesne Tabanlı Programlama, uzun vade de büyük faydalarını göreceğiniz bir yöntem. Tavsiye ederim.
Django’da severek kullanıyoruz. Fonksiyonlar ile 50 satırda yapılacak işi 5 satır sınıf koduyla yapabiliyorsunuz. Bunun için size Django Rest Framework (DRF) öğrenmeye başlamanızı tavsiye ederim.