Adapter Pattern Nedir Nerelerde Kullanılır ?

Merhaba,

Bugün yazılım geliştirme modellerinden olan Adapter patterninden bahsedeceğim.

Client : Geliştirdiğiniz yazılımı arayüzünü kullanarak yazılım geliştiren kişi.

Bazı durumlarda client sunduğunuz kodda kalıbı bozmadan ufak değişiklikler yaparak yazılımını geliştirmesi gerekebilir. Bazen ise yazılım tamamemn sunduğunuz arayüzden bağımsız olarak geliştirilebilir. Örneğin bir roket simulasyon programını düşünelim. Bu program sizin sağladığınız roket bilgilerine göre geliştirilebileceği gibi client roketin nasıl olması gerektiğini hangi durumlarda nasıl davranması gerektiğini de programlamak isteyebilir. Client’ın sunduğunuz servislerini direk olarak kullanmasını sağlamak veya metod isimlerini kendine göre özelleştirip servis etmek istediniz durumlarda Adapter modelini kullanabilirsiniz.

Adapter’in amacı : Client’ın beklediği servisleri, farklı bir arayüz ile o sınıfa ait servisleri kullanabileceği yapıyı oluşturmaktır.

adapterExampleUmlDiagram

Resimdeki “NewClass” sınıfı adapter’a örnektir. Bu sınıftan üretilen nesne aynı zamanda “RequiredInterface” arayüzününde nesnesi olacaktır. Daha somut bir örnek verelim :
Roketlerin uçuş ve zamanlamalarını simule eden bir paket üzerinde çalışıyorsunuz. Elimizdeki pakette roketin davranışına göre olayları simule eden bir olay simulatörü olduğunu varsayalım. Elinizde ise fiziksel özellikleri PhysicalRocket sınıfında belirlenmiş bir roketiniz var. Simulasyon paketini kullanarak roketi simule etmek istiyorsunuz. Bu durumda PhysicalRocket sınıfının alt sınıfını oluşturup RocketSimInterface arayüzünü implement ederek Adapter modelini kullanabilirsiniz.

adapter4

Class diyagramının implementi ise aşağıdaki gibi olacaktır :

package com.oozinoz.firework;
import com.oozinoz.simulation.*;

public class OozinozRocket extends PhysicalRocket implements RocketSim {

private double time;

public OozinozRocket(
       double burnArea,
       double burnRate,
       double fuelMass,
       double totalMass){
 
super(burnArea, burnRate, fuelMass, totalMass);
}
public double getMass() {
        return getMass(time);
}
public double getThrust() {
        return getThrust(time);
}
public void setSimTime(double time) {
        this.time = time;
}
}

Loading

Facebooktwitterredditpinterestlinkedinmail

WordPress “Yirmi Ondört” Teması [ Sonraki &arr; ] Çeviri Sorunu ve Çözümü

Merhaba ;

Eğer siz de benim gibi WP’nin 2014 temasını kullanıyorsanız Türkçe çevirisindeki hatayı farketmişsinizdir. Sayfa sonunda “Sonraki &arr;” biçiminde
kötü bir görünüm oluşturuyor. Her wordpress güncellemesinde bu sorun tekrardan oluşuyor.Çözümü ise gayet basit.

– Temanızın dil dosyasının yüklü olduğu dizine giderek /wp-content/languages/themes/twentyfourteen-tr_TR.po dosyasını bilgisayarınıza indirin.

– Bu dosyayı Poedit programıyla açın. Poedit yüklü değilse buradan indirebilirsiniz.

– Ctrl + F tuşlarına basarak “Sonraki” kelimesini arayın.

ceviri_1

– Çeviride küçük bir hata yapılmış “Sonraki &arr;” yazan yere “Sonraki →” yazarak dosyayı kaydedin.Otomatik olarak .mo uzantılı dosya oluşacaktır.

Güncellenmiş hali aşağıdaki gibi olacaktır :

ceviri_2

– /wp-content/languages/themes/ dizinindeki “twentyfourteen-tr_TR.po” ve “twentyfourteen-tr_TR.mo” dosyalarını silerek güncellediğimiz sürümlerini yükleyin böylece sorun düzelecektir.

sonraki

İyi çalışmalar.

Loading

Facebooktwitterredditpinterestlinkedinmail

Android Ekran Durumunu (Orientation) Anlama

Merhaba;

ekran_rotasyon

Cihazın anlık konumunu dikey/yatay olduğunu aşağıdaki komutla anlayabilirsiniz:

if(Activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){

// Cihaz Yatay Konumda 
// Bir şeyler yap...

}

if(Activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){

// Cihaz Dikey Konumda 
// Bir şeyler yap...

}

Loading

Facebooktwitterredditpinterestlinkedinmail

Maven Local Repo’ya .jar Yükleme

Merhaba;

Elinizde bi .jar uzantılı dosyanız var ve bunun pom.xml’i mevcut değilse bu jar dosyasını aşağıdaki komutla local reponuza ekleyebilirsiniz:

mvn install:install-file
-Dfile= -DgroupId=
-DartifactId=
-Dversion=
-Dpackaging= -DgeneratePom=true

Where: yüklenecek dosya yolu
jar’ın grup idsi.
jar’ın artifact idsi.
dosyanın versiyonu dosyanın uzantısı..(Örn: .jar)

İyi çalışmalar.

Kaynak : Maven

Loading

Facebooktwitterredditpinterestlinkedinmail

Kod yazmak anlamaktır.