Proje tasarımı
- C# kursu
- İleri seviye
- Ders 79/83
- 6 dk
İleri seviye finali mini uygulamasının iskeletini tasarlarsın.
Proje: Komut çalıştırıcı
Bu 5 derslik projede bir komut çalıştırıcı (command runner) yapacaksın. Her derste bir parça ekleyecek, son derste çalışan bir bütün elde edeceksin. Çekirdek: bir ICommand arayüzü ve bu arayüzü uygulayan komut sınıfları.
İlk ders projenin iskeletini kurar: ICommand arayüzü (string Execute() metodu), HelloCommand adında bir somut komut ("Merhaba" döndürür) ve bunu çağıran bir Main. Sonraki derslerde bu iskeleyi async, reflection ve bağımlılık enjeksiyonu ile genişleteceğiz.
Komut deseni
Bu proje komut deseniinin (command pattern) sade bir uygulamasıdır. Her eylem kendi sınıfına gömülür; hepsi aynı arayüzü uygular. Çalıştırıcı yalnızca ICommand arayüzünü tanır; somut komutu bilmez. Böylece yeni komut eklemek mevcut kodu bozmaz.
Somut komut HelloCommand, Execute() çağrılınca "Merhaba" döndürür. Main bir örnek yaratır, sonucu yazdırır. Bu minik başlangıç, sonraki derslerde async ve reflection ile büyüyecek.
Uygulama Komut iskeletini kur
Bir ICommand arayüzü tanımla; string Execute() metodu olsun. HelloCommand : ICommand sınıfı Execute() çağrılınca "Merhaba" döndürsün. Main'de bir HelloCommand örneği yarat ve Console.WriteLine(cmd.Execute()) ile sonucu yazdır.
Başlangıç kodu
using System;
// ICommand arayüzü ve HelloCommand sınıfını ekle
class Program
{
static void Main()
{
// HelloCommand örneği oluştur ve sonucu yazdır
}
}Örnek çözüm
using System;
interface ICommand
{
string Execute();
}
class HelloCommand : ICommand
{
public string Execute() => "Merhaba";
}
class Program
{
static void Main()
{
var cmd = new HelloCommand();
Console.WriteLine(cmd.Execute());
}
}Beklenen çıktı
Merhaba
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bu projenin çekirdeği nedir?
- Bir web sunucusu
- Bir veritabanı bağlantısı
- ICommand arayüzü ve komut sınıfları Doğru cevap
- Bir konsol menüsü
Açıklama: ICommand arayüzü ve onu uygulayan komut sınıfları projenin çekirdeğidir.
2 Arayüz metodunu tamamla
string ____();
string Execute();
Açıklama: Execute() komutun çalıştırılmasını temsil eder.
3 Proje terimlerini eşleştir
| Kavram | Anlamı |
|---|---|
ICommand |
Komut sözleşmesi |
HelloCommand |
İlk somut komut |
Execute |
Çalıştırma metodu |
Main |
Program girişi |