OOP'de instanceof,switch case v.s. gibi yapıların sıklıkla kullanımı kötü bir OOP tasarımına mı işaret eder?

Ya da bu tarz yapılar OOP'deki seperation of concerns ve single responsibility principle'larını ihlal mi eder? duruma göre değişir mi?

Benzer şekilde singleton pattern'inin kullanımı tasarımı bir noktadan sonra OOP'den çıkarıp procedurel mantıktaki bir tasarıma dönüştürür mü?

soruldu: 04 Haz '12, 12:18

nht's gravatar image

nht
95651720
cevap kabul oranı: 33%

değiştirildi: 04 Haz '12, 14:46

CemIkta's gravatar image

CemIkta ♦
19.9k29125190


instanceof LSP ve OCP tasarim prensiplerine ters düser. switch komutu OCP'ye ters düser. Her ikisinin kullanimi kötü OOP tasarimina isarettir. Kodun bakimini güclestirir, gelistirilmesini ve jenerik olmasini engeller. swich komutu "Replace Conditional with Polymorphism" refactoring metodu ile OOP uyumlu hale getirilebilir.

Singleton bir tasarim sablonu olarak görülmemektedir, daha ziyada antipaterndir. Bir siniftan sadece bir nesnenin tadavülde olmasini gerektiren durumlar olmakla beraber, Singleton siniflarin test edilmesi cok zordur. Bu yüzden kullanilmamalarinda fayda vardir.

EOF (End Of Fun) Özcan Acar

permanent link

cevaplandı: 04 Haz '12, 16:55

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183
cevap kabul oranı: 52%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×14
×13
×2

Soruldu: 04 Haz '12, 12:18

Görüntüleme: 1,001 kez

Son güncelleme: 04 Haz '12, 16:55

powered by BitNami OSQA