Tasarım (arayüzler ve kalıtım)
Bir arayüz ve küçük bir temel sınıfla basit bir Shape API'si tasarlayın; sözleşmeye neyin, uygulama ayrıntısına neyin ait olduğuna karar verin.
Tasarım (arayüzler ve kalıtım), CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 3 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 3 dersten oluşur.
Proje genel bakışı
Amaç: Şekiller için küçük ve açık bir sözleşme tanımlamak.
- Davranış için bir arayüz kullanın
- Dış yüzeyi en küçük düzeyde tutun
- Birçok şeklin eklenmesine izin verin
Önce sözleşme
Area() ve Perimeter() içeren küçük bir IShape sözleşmesi oluşturun. Yardımcı programlar arayüze bağımlı olabilir.
using System;
// Interface: minimal behavior all shapes must provide
public interface IShape
{
double Area();
double Perimeter();
}
// A tiny helper to print any IShape
public static class ShapePrinter
{
public static void Print(IShape s)
{
Console.WriteLine("A=" + s.Area() + " P=" + s.Perimeter());
}
}
public class Program
{
public static void Main(string[] args)
{
// No concrete shapes yet; interface compiles and is ready.
Console.WriteLine("Shape API ready");
}
}
İsteğe bağlı temel sınıf
Paylaşılan yardımcılar için küçük bir abstract temel ekleyebilirsiniz; ancak resmi sözleşme olarak arayüzü koruyun.
using System;
// Optional base for helpers; interface stays the main contract
public abstract class ShapeBase : IShape
{
public abstract double Area();
public abstract double Perimeter();
// Shared rounding helper
protected double Round2(double x)
{
return Math.Round(x, 2);
}
}
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Base class prepared for shared helpers");
}
}
Somut şekiller
Somut şekiller arayüzü uygular. İstemciler bunları IShape üzerinden tek biçimde ele alabilir.
using System;
public interface IShape
{
double Area();
double Perimeter();
}
public class Rectangle : IShape
{
private readonly double _w, _h;
public Rectangle(double w, double h) { _w = w; _h = h; }
public double Area() { return _w * _h; }
public double Perimeter() { return 2 * (_w + _h); }
}
public class Circle : IShape
{
private readonly double _r;
public Circle(double r) { _r = r; }
public double Area() { return 3.14159 * _r * _r; }
public double Perimeter() { return 2 * 3.14159 * _r; }
}
public class Program
{
public static void Main(string[] args)
{
IShape a = new Rectangle(3, 4);
IShape b = new Circle(2);
Console.WriteLine("Rect A=" + a.Area() + " P=" + a.Perimeter());
Console.WriteLine("Circ A=" + b.Area() + " P=" + b.Perimeter());
}
}
IShape koleksiyonları
Birçok şekli depolamak ve aynı şekilde işlemek için bir Liste<IShape> kullanın.
using System;
using System.Collections.Generic;
public interface IShape
{
double Area();
double Perimeter();
}
public class Rectangle : IShape
{
private readonly double _w, _h;
public Rectangle(double w, double h) { _w = w; _h = h; }
public double Area() { return _w * _h; }
public double Perimeter() { return 2 * (_w + _h); }
}
public class Circle : IShape
{
private readonly double _r;
public Circle(double r) { _r = r; }
public double Area() { return 3.14159 * _r * _r; }
public double Perimeter() { return 2 * 3.14159 * _r; }
}
public class Program
{
public static void Main(string[] args)
{
List<IShape> shapes = new List<IShape>();
shapes.Add(new Rectangle(2, 5));
shapes.Add(new Circle(1.5));
foreach (IShape s in shapes)
{
Console.WriteLine("A=" + s.Area() + " P=" + s.Perimeter());
}
}
}
Tasarım kontrol listesi
Kontrol listesi:
- Arayüz sözleşmedir (küçük ve açıktır).
- Somut şekiller alanlarını özel tutar.
- Basit matematik için double değerlerini kullanın; sabitleri yerel tutun.
- Tür kontrolleri yerine çok biçimliliği tercih edin.
Sözleşme seçimi
Özet
Özet: Küçük bir IShape arayüzü tanımlayın, iç ayrıntıları özel tutun ve çok biçimli işleme için arayüz koleksiyonlarını kullanın.
Sıkça Sorulan Sorular
“Tasarım (arayüzler ve kalıtım)” dersi ücretsiz mi?
Evet — “Tasarım (arayüzler ve kalıtım)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 3 dersten oluşur.
“Tasarım (arayüzler ve kalıtım)” dersinde ne öğreneceğim?
Bir arayüz ve küçük bir temel sınıfla basit bir Shape API'si tasarlayın; sözleşmeye neyin, uygulama ayrıntısına neyin ait olduğuna karar verin. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C# Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 1. dersidir.
“Tasarım (arayüzler ve kalıtım)” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Tasarım (arayüzler ve kalıtım)
- Uygulama ve sınamalar
- Çok biçimli davranışlar