Merhaba arkadaşlar şuan uygulamamı anlayarak kodladım kendime bir soru sordum bu uygulamanın neresinde Miras(extends) ve Interface kullanabilirim diye ama cevap veremedim otomasyon uygulamamın bir fotografını daha önce atmıştım bir daha atıyorum. Sizce ben bu uygulamanın neresini Miras ve Interface ile kodlayabilirim veya Miras ve Interface çalışma mantığını anlayabilmem için yapmam gereken bir uygulama söyleyebilir misiniz? Uygulama

soruldu: 17 Haz '14, 11:29

HakanKav%C3%A7in's gravatar image

HakanKavçin
286182024
cevap kabul oranı: 37%

değiştirildi: 17 Haz '14, 11:33

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Miras (inheritance) olayini hic girmemende fayda var. Mirasi yapilarinin test edilmesi ve genisletilmesi cok zordur. Interface siniflar kullanarak uygulamani parcalara bölebilirsin.

Örnegin veri tabaninda müsterileri cekmissin. Bu islemi GUI icinde dogrudan SQL ler kullanarak yapmak yerine, CustomerService isminde bir interface sinif olusturabilirsin. GUI müsterileri almak icin CustomerService sinifina danisir. CustomerService müsteriler icin gerekli is mantigini ihtiva edebilir. Gercek müsteri bilgilerini cekmek icin CustomerAccess isminde baska bir interface sinifi daha yapabilirsin. Müsteri bilgilerini elde etmek icin akis su sekilde olabilir:

GUI --> CustomerService --> CustomerAccess

CustomerService ve CustomerAccess siniflarini interface olalarak düsünebilirsin. Bu interface siniflari implemente ettikten sonra, CustomerAccessImpl sinifindan olan nesneyi CustomerServiceImpl, CustomerServiceImpl sinifindan olan nesneyi de GUI ye enjekte edebilirsin.

Burada bir masa üstü programi gelistirmis olsan da, katmali bir mimari uygulamis oldun. Test yazarken gercek katmanlar yerine, örnegin Mock ya da stub implementasyon kullanarak, alt katmanlari simule edebilirsin. Bu örnegin GUI icin test yazmani kolaylastirir.

Interface kullanimini anlamak icin bu yazima bakabilirsin.

Veri katmani icin DAO tasarim sablonunu kullanabilirsin.

EOF (End Of Fun)

Özcan Acar

permanent link

cevaplandı: 17 Haz '14, 11:42

%C3%B6zcanacar's gravatar image

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

değiştirildi: 17 Haz '14, 11:43

Merhaba

Interface'lerin bir kullanım alanı da plugin tabanlı,modüler uygulamalardır. Her modül/plugin "Host" uygulamaya bağlı olarak çalışır. Plugin tek başına çalıştırılmaz.

Ekran görüntüsünden yola çıkılarak şöyle bir yöntem izlenebilir örneğin.

"İşlem Seçimi" ekranı Host uygulaması olarak tasarlanabilir.

"Ürün işlemleri" ve "Müşteri İşlemleri" host projesinden bağımsız, birer plugin olarak tasarlanabilir.

Host uygulaması(İşlem seçimi ekranı) pluginleri yüklediğinde, her bir plugin "İşlem seçimi" ekranında,kendisine erişim için bir buton yada menü olarak yer alır. Bu bahsettiklerim işin teorikteki kısmı.

Pratikte nasıl yapabilirim diyorsan aşağıdaki örneği inceleyebilirsin.

Developing A Simple Pluggable Java Application

permanent link

cevaplandı: 17 Haz '14, 18:08

ismailkocacan's gravatar image

ismailkocacan
2.4k31733
cevap kabul oranı: 13%

değiştirildi: 17 Haz '14, 18:13

bir de class/interface kullanımındaki artış biraz tecrübeye paralel. çünkü yazılım geliştirdikçe misal tekrar eden kod blokları vs oluyor dry gereği bunları yok etmeniz gerekiyor ya da zaten işinizi iyi yapmak istiyorsanız bu tekrarlar insana batıyor, bu noktada kalıtımın nimetlerinden faydalanabiliyorsun. yine yazılımın kalitesini arttırmak noktasında test edilebilirlik kavramı gündeme geliyor. test edilebilirlik için de zaten solid, sınıfların bagımlılıklarının dusuk olması geregi interface kullanımına agirlik vermeye basliyorsun

permanent link

cevaplandı: 19 Haz '14, 01:46

gturedi's gravatar image

gturedi
2.8k41538
cevap kabul oranı: 26%

Dialog pencerelerini miras alabilirsin. Mesela Login ekranında "Tamam" ve "Iptal" butonu olduğunu var sayalım. Aynı zamanda arama ekranında da "Tamam" ve "Iptal" butonu olsun. bu durumda "Tamam" ve "Iptal" butonu olan bir pencereden miras alabilirsin. böylece benzer ekranlarda "Tamam" ve "Iptal" butonu tekrar yerleştirmeye uğraşmazsın.

Başka bir örnek verelim. Diyelim ki kullanıcı bir pencere açtı ve sonra bu pencereyi boyutlandırdı ve konumunu değiştirdi. pencereyi kapatıp açtıktan sonra yaptığı ayarlar kayboldu. ama ayarları saklayan bir pencereden miras alabilirdi (Tabi ki kodlanmış olması gerekiyor).

permanent link

cevaplandı: 24 Haz '14, 02:54

Fatih%20A%C5%9Flamac%C4%B1's gravatar image

Fatih Aşlamacı
1.0k111929
cevap kabul oranı: 14%

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:

×1,077
×11

Soruldu: 17 Haz '14, 11:29

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

Son güncelleme: 24 Haz '14, 02:54

powered by BitNami OSQA