OOP Nerede ve Ne Zaman Gereklidir?

Tarih: Nisan 27th, 2009 | Yazar: | Kategori: Makaleler | Etiketler: , , , , , , , , , , , | 4 Yorum »

Merhaba arkadaşlar. Bugün sizlere benimde zamanında bayağı sorununu çektiğim bir konuda yardım etmek istiyorum. OOP nedir biliyoruz artık; nesne yönelimli programlama. Yani belirli sınıf ve fonksiyonlar ile işlerimizi kolaylaştırıyoruz. Buraya kadar herşey tamam fakat nerede OOP a ihtiyaç duyarız? Bütün sistemi OOP şeklinde mi yapmalıyız?

Genelde bu soruya hep şöyle cevap verilir; diyelim bir menünüz var ve bunu sürekli tekrar tekrar ekliyorsunuz. İşte fonksiyon haline çevirip çağırabilirsiniz. Aslında bu anlatım ilk başlayana göre biraz ağır. Onun yerine şöyle denilebilir; arkadaşlar aynı kodları defalarca yazarsak ne olur? Hem performans düşer hemde boşuna yazmış oluruz. Fakat tek bir kodu bütün sayfalarda kullansak ne olur? Boşuna defalarca yazmayız; işte OOP budur…

Eğer ki aynı kodları defalarca kullanacaksanız o zaman nesnel şekle çevirir ve birkaç veriyle olayı halledersiniz. Şöyle örnek verelim; diyelim ki bir denklem kurdunuz; ($x.$x/$x).(5.$x.10.$x/$x)ve bu denklemi üç sayfada göstermeniz gerekiyor. O zaman bu kadar veriyi tekrar tekrar yazmanız lazım değil mi? İşte bir fonksiyon yaratarak daha az satıra düşürebiliriz; function islem($x) { echo ($x.$x/$x).(5.$x.10.$x/$x); }.

Not: Normalde bu kadar ufak kodu fonksiyon haline çevirirseniz biraz gereksiz kaçabilir. Çünkü nesnel için harcadığınız satırlar daha fazla :D . Eğer bundan daha fazla kodunuz olursa nesnel hale geçirmelisiniz…

Buraya kadar fonksiyon nerede kullanılır onu gördük. Peki class lar yani sınıflar nerede kullanılır? Gördüğünüz gibi ufak kodlar da fonksiyon kullanmak en iyisi. Çünkü amacımız az satırla çok iş. Ben kendimden örnek vereyim; şu anda yazdığım sistemde iki adet sınıf var. Birincisi kullanıcılar, ikincisi islemler. Tahmin edebileceğiniz gibi kullanıcılar isimli sınıfta kullanıcılara ait bilgiler yer alıyor; id, yetki, imza, profil vs. Bu gibi kullanıcıya ait bütün bilgiler tek bir sınıf içerisinde dönüyor ve ona ait bilgiler ( duruma göre gereksiz olanlar ) fonksiyon ile çağırılıyor. Bu sayede o kadar karmaşık kodları tek dosya içerisinde “tek bilgi” ile düzenli hale getiriyorum. Diyelim ki kullanıcılar arasında bir problem çıktı; yetki verisi gereksiz kaldı. Anında $yetki satırını siliyorum ve bütün sistemden $yetki değişkeni kalkmış oluyor. İşte büyük sistemlerde en önemlisi bir kullanıcı sınıfıdır.

Bir diğer sınıfım ise islemler. Yine tahmin edebileceğiniz gibi burada da sistemler işlemleri için gerekli veriler var. Mesela yaziekle(), yazilarial(), yazioku() vs. Mesela yazioku() fonksiyonunda yazioku($_GET["id"]); diyorum ve hemen yazıyı çekiyor. Gördüğünüz gibi bu kadar kolay bütün işlemler yapılabiliyor. Diyelim ki bir hack durumu oldu ve yaziekle() fonksiyonunda düzenleme yapmam lazım. Fakat bunun için diğer bir fonksiyon daha var; kontrol(). O zaman genel değişkenlerden ortak veriyi siliyorum ve yaziekle() yi kaldırıyorum. Böylece kısa sürede işlemler hallediliyor…

Gördüğünüz gibi fonksiyon ve sınıfların nerede kullanılması gerektiği açıkça belli. Büyük sistemler de en az iki adet sınıf kullanmak şart gibi. Fakat gereksiz yerlerde gereksiz sınıf kullanmakta biraz acemilik olabilir. Kısacası akıllı düşünüp ona göre sistem yazmak önemli birşey. Bir yere kadar yardım edilebilir…

Herkese iyi günler, iyi çalışmalar…




Benzer Yazılar;

coded by nessus

“OOP Nerede ve Ne Zaman Gereklidir?” yazısında 4 Ahkam var.

  1. 1 nesne yönelimli programlama ve php | .:: www.selmantunc.com ::. 02:25 on Temmuz 18th, 2010 anında kesmiş:

    [...] http://www.birogrenciklasigi.com/oop-nerede-ve-ne-zaman-gereklidir.html [...]

  2. 2 Ali Dagdelen 06:54 on Şubat 4th, 2011 anında kesmiş:

    Merhaba anlatimlariniz icin tesekkurler ben soyle bişey sormak istiyorum. Tamam kolaylik acisindan OOP mukemmel fakat islemlerin hizi acisindan da oyle mi? Mesela sadece fnCikarma fonksyionu icin butun islemlerin oldugu bi classin tümünün calismasi performansi etkilemez mi?

  3. 3 Ali Fırat Güler 10:40 on Kasım 9th, 2011 anında kesmiş:

    39 hafta önce yazılmış bir yorum olmasın rağmen cevaplayayım :)
    Ali beybir sınıf oluştururken o sınıfın içine benzer fonksiyonları koyucaksınız. ve nekadar fazla sınıf oluşturursanız sizin için ve php için okadar iyidir. çünki bir sınıfın içinde nekadar çok fonksiyon varsa php ye o sınııf tanıttığınızda okadar çok fonksiyon gereksiz yere derlenir. fakat daha fazla sınıf kullanarak daha çok ayırırsanız Her sınıfta daha az fonksiyon olur. buda daha hızlı çalışma sağlar. Şimdi benim scriptlerimde mesela dosya adında sınıfım var, upload adında sınıfım var. Dosya sınıfımda iki fonksiyonum var. birisi dosya okuyucu diğeri herhangi bir dosyaya yazıcı fonksiyonum. Upload sınıfımda ise gelişmiş upload fonksiyonlarım var. Şimdi ben bu iki sınıfı birleştirip genel_fonksiyonlar Adında bir sınıf yapsam Ve bu sınıfı dosya okuma fonksiyonunu kullanmak için tanımlarsam. diğer tüm gereksiz fonksiyonlarda derlenecekti.

    Onun için class oluştururken. Biraz düşünüp Genelde birlikte kullanılcak fonksiyonları bir sınıfa koyun ki performansınız maximum olsun :)

  4. 4 Kohana ya başlamadan önce php ile nesne yönelimli programlama | Kohana Türkiye 21:40 on Aralık 5th, 2011 anında kesmiş:

    [...] http://www.birogrenciklasigi.com/oop-nerede-ve-ne-zaman-gereklidir.html [...]


Ahkam Kesme Aparatı

  • *