C Dilinde Command Yazılım Tasarım Deseni

Yazılım Tasarım desenlerinin en önemli amaçlarından biri tasarıma kod ekleme çıkarma konusunda dinamizm ve değişimlere karşı stabilite kazandırmaktır. Dizayn yaparken her zaman ileriye yönelik kod ekleme çıkarma yapılması, dizayndaki bazı kısımların iptal edilmesi gibi durumlarda geri kalan dizaynın etkilenmemesi gerektiği üzerinde durmak gerekiyor.

C kullanırken de nesne yönelimli gibi kullanabiliriz. Bu yazıyı okumadan önce bununla alakalı yazdığım bir önceki yazıma göz atabilirsiniz.

Şimdi gelelim Command Tasarım desenine.

Problem

Command tasarım deseni, herhangi bir olayı gerçekleştirmesi istenen sınıf ile bu olayı gerçekleştirmek için komut gönderen sınıf ve ya sınıfların yalıtılmasını sağlar.  Yani demek istiyorum ki, aşağıdaki şematiğe bakarsanız Subject sınıfı ile Client sınıfı tamamen yalıtılmış durumdadır.  Ayrıca Command tasarım deseni dizaynda istek gönderen ve bu isteği yerine getiren sınıfları kategorize eder ve bu sınıfların dinamik bir şekilde oluşturulabilmesini sağlar.

Dizayn

1-) Command Soyut(Abstract) Sınıfından türetilen Command(Command1, Command2) Sınıfları oluşturuyoruz.

2-) Command Sınıflarının istenilen işlevi yerine getirmesi için ihtiyacı olan asıl işi yüklenen Subject sınıfını  Command sınıflarının kullanabilmesini sağlıyoruz.

3-) Client sınıfı tarafından gönderilen komutları listeleyen ya da kuyruğa alan bir Commander Sınıfı oluşturuyoruz.

4-) Ve tüm komutları veren Bir Client sınıfı oluşturup, bu Command sınıflarına komut gönderebilmesini sağlıyoruz.

Kodlar İçin;

https://github.com/electronicengine/design_patterns_c/tree/master/command

Yusuf

Yusuf

Bir Mühendis.

Önerilen makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Translate »