Bridge Tasarım Deseni

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda tasarım desenlerinden biri olan bridge tasarım desenini anlatacağım. Hadi başlayalım !
Table of Contents
Aslında bu tasarım deseni diğer tüm tasarım desenlerinde de olduğu gibi C# diline özgü bir kavram değil, tüm nesne yönelimli programlama dillerinde daha temiz kod yazabilmek için oluşturulmuş ve yazılımcılar tarafından da kabul görmüş yazılı olmayan kurallardır ve nesne yönelimli programlama yapılabilen tüm dillerde uygulanabilmektedir.
Bridge Tasarım Deseni Nedir?
Bridge tasarım deseni, nesne yönelimli programlama (OOP) alanında kullanılan bir tasarım desenidir. Bu desen, bir nesnenin soyutlama seviyesini ve uygulama detaylarını ayrı ayrı ele alarak, modüler bir kod yapısı oluşturmayı hedefler.
C# programlama dili, nesne yönelimli programlama konusunda oldukça popüler bir seçenektir. Bu dil, Bridge tasarım desenini uygulamak için uygun bir araçtır. Bu makalede, Bridge tasarım deseni ve C# programlama dili kullanılarak oluşturulmuş bir örnek üzerinde durulacaktır.
Öncelikle, Bridge tasarım deseninin nasıl çalıştığına bir göz atalım. Bridge tasarım deseni, soyutlama seviyesini ve uygulama detaylarını ayrı nesneler olarak ele alır. Bu sayede, her bir nesne kendi işlevselliğini korur ve bu işlevselliği değiştirmeden, başka bir nesneyle birleştirilebilir.
Bu desen, birbirinden farklı iki sınıf arasındaki bağımlılığı azaltarak, kodun daha modüler ve bakımı kolay hale gelmesini sağlar. Bridge tasarım deseni, genellikle arayüzler ve soyut sınıflar kullanılarak uygulanır.
C# İle Uygulanması
Şimdi, C# programlama dili kullanarak bir Bridge tasarım deseni örneği oluşturalım. Bu örnekte, bir cep telefonu uygulaması için farklı müzik çalma seçenekleri arasında geçiş yapabilen bir Bridge tasarım deseni kullanacağız.
IMusicPlayer Arayüzünün Oluşturulması
İlk olarak, müzik çalma arayüzümüzü tanımlayalım:
public interface IMusicPlayer
{
void Play();
void Pause();
void Stop();
}
Spotify ve AppleMusic Sınıfının Oluşturulması
Bu arayüz, herhangi bir müzik çalma uygulaması için gerekli işlevleri içerir. Şimdi, farklı müzik çalma seçeneklerimizi temsil eden sınıfları oluşturalım:
public class Spotify : IMusicPlayer
{
public void Play()
{
Console.WriteLine("Playing music on Spotify");
}
public void Pause()
{
Console.WriteLine("Pausing music on Spotify");
}
public void Stop()
{
Console.WriteLine("Stopping music on Spotify");
}
}
public class AppleMusic : IMusicPlayer
{
public void Play()
{
Console.WriteLine("Playing music on Apple Music");
}
public void Pause()
{
Console.WriteLine("Pausing music on Apple Music");
}
public void Stop()
{
Console.WriteLine("Stopping music on Apple Music");
}
}
Burada, Spotify ve Apple Music sınıfları, IMusicPlayer arayüzünü uygularlar. Bu sayede, müzik çalma işlevleri ayrı bir nesne olarak ele alınabilir ve müzik çalma uygulamaları arasında geçiş yapılabilir.
MusicApp Sınıfının Oluşturulması ve Müzik Çalar Uygulamasının Tamamlanması
Son olarak, Bridge tasarım desenini kullanarak müzik çalma uygulamamızı oluşturabiliriz:
public class MusicApp
{
private IMusicPlayer _musicPlayer;
public MusicApp(IMusicPlayer musicPlayer)
{
_musicPlayer = musicPlayer;
}
public void PlayMusic()
{
_musicPlayer.Play();
}
public void PauseMusic()
{
_musicPlayer.Pause();
}
public void StopMusic()
{
_musicPlayer.Stop();
}
}
Bu sınıf, IMusicPlayer arayüzü kullanarak farklı müzik çalma seçenekleri arasında geçiş yapabilir. Bu sayede, müzik çalma uygulamasının kod yapısı daha modüler hale gelir ve daha kolay bakım yapılabilir.
Uygulamanın Kullanılması
Örneğimizi kullanarak, Spotify ve Apple Music arasında geçiş yapabiliriz:
MusicApp musicApp = new MusicApp(new Spotify());
musicApp.PlayMusic();
musicApp = new MusicApp(new AppleMusic());
musicApp.PlayMusic();
Bu kod, önce Spotify ile müzik çalmaya başlar, ardından Apple Music’e geçer ve müzik çalmaya devam eder.
Sonuç
Bu şekilde, Bridge tasarım deseni kullanarak, müzik çalma uygulamasının kod yapısını daha modüler ve bakımı daha kolay hale getirdik. Bu desen, farklı nesneler arasındaki bağımlılığı azaltarak, kodun daha esnek hale gelmesini sağlar.
Evet bridge tasarım deseni ve C# ile uygulanması bu şekilde olmakta. Tüm C# yazılarımıza buraya, diğer tasarım deseni yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.