Exemplo n.º 1
0
        static void Main(string[] args)
        {
            // Metodlar, tekrar tekrar kullanılabilirliği sağlayan kod bloklarıdır.
            // DRY principle: Do not repeat yourself! - Clean Code - Best Practice (Doğru Uygulama Teknikleri)

            // Örneğin, e-ticaret sitesinde ürünlerin sepete ekleme kısmı.
            // Sepete ekleme her yere eklenen hatta mail ile gönderilen aynı fonksiyonu, metodu içerir.

            // Class'tan bir değişken tanımlama:
            Product product1 = new Product(); // Class'ın örneği yani instance oluşturma

            product1.name        = "Elma";
            product1.price       = 14.99;
            product1.description = "Amasya Elması";

            Product product2 = new Product();

            product2.name        = "Portakal";
            product2.price       = 8.99;
            product2.description = "Antalya Portakalı";

            Product product3 = new Product();

            product3.name        = "Karpuz";
            product3.price       = 80;
            product3.description = "Diyarbakır Karpuzu";

            // Class'tan oluşturulan değişkenleri diziye toplamak:
            // Belirtilen tipte birden fazla data içerir.
            Product[] products = new Product[] { product1, product2, product3 };

            foreach (Product product in products)
            {//products'ın içini gez, product gezilecek verilere takılan isim(alias), Product ise veri tipi (type-safety için)
                // var da yazılsa olur!
                Console.WriteLine(product.name + " " + product.price + " " + product.description);
                Console.WriteLine("------------------------------------");
            }

            Console.WriteLine("\nFor Döngüsü Hatırlatma :)");
            for (int i = 0; i < products.Length; i++)
            {
                Console.WriteLine(products[i].name + " " + products[i].price + " " + products[i].description);
                Console.WriteLine("------------------------------------");
            }

            Console.WriteLine("--------------Metodlar--------------");

            // Class instance - örnek
            // Burada sayfaların patlamadı! - Encapsulation
            // Encapsulation : kapsülleme, bir yapıyı bir kapsüle düzene koymaktır.
            CartManager cartManager = new CartManager();

            cartManager.addToCart(product1); // çağrılan metod parametre ister
            cartManager.addToCart(product2);
            cartManager.addToCart(product3);

            // Class olmasaydı, böyle ürün gönderildi!!
            // Ürünün Stok Fiyatınında girilmesi istensin!
            // Hepsi sayfa olsaydı, her yer bozuldu, her ürünün stok fiyatını girmen gerekecek, tek tek değiştirmek gerekecek!
            cartManager.addAlternative("Armut", "Sarı Armut", 12, 10);
            cartManager.addAlternative("Elma", "Sarı Elma", 8, 10);
            cartManager.addAlternative("Karpuz", "Japon", 45, 10);

            // cw = snippet of print command --- Console.WriteLine();

            // Metodlar,  reusability sağlar. (Tekrar tekrar kullanılabilme özelliği verir!)
        }