CodeBlanks Logo Icon CodeBlanks

Proje tasarımı

C# kursu · İleri seviye · Ders 79/83

İ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.

Örnek çözümü göster
ICommand { public string Execute() => "Merhaba"; } yaz. Main'de: var cmd = new HelloCommand(); Console.WriteLine(cmd.Execute());
Ö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());
    }
}

Kendini test et

  1. Bu projenin çekirdeği nedir?

    • ICommand arayüzü ve komut sınıfları
    • Bir veritabanı bağlantısı
    • Bir web sunucusu
    • Bir konsol menüsü
    Cevabı göster

    ICommand arayüzü ve komut sınıfları — Doğru. ICommand arayüzü ve onu uygulayan komut sınıfları projenin çekirdeğidir.

  2. Arayüz metodunu tamamla

    string ____();
    Cevabı göster
    string Execute();
  3. Proje terimlerini eşleştir

    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