CodeBlanks Logo Icon CodeBlanks

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

Program.cs
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

Program.cs
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

Soru
string ____();
Cevap
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

İleri seviye bölümündeki tüm dersler