static void Main(string[] args) { var products = new List <Product>() { new Product() { Name = "Product 1", Price = 1 }, new Product() { Name = "Product 2", Price = 2 }, new Product() { Name = "Product 3", Price = 3 }, new Product() { Name = "Product 4", Price = 4 }, new Product() { Name = "Product 5", Price = 5 }, new Product() { Name = "Product 6", Price = 6 }, new Product() { Name = "Product 7", Price = 7 }, new Product() { Name = "Product 8", Price = 8 } }; var productStockReportBuilder = new ProductStockReportBuilder(products); var productStockReportDirector = new ProductStockReportDirector(productStockReportBuilder); productStockReportDirector.BuilReport(); var report = productStockReportBuilder.GetReport(); Console.WriteLine(report); Console.ReadKey(); }
static void Main(string[] args) { //Console.WriteLine("Hello World!"); var _products = new List <Product> { new Product { ProductID = 1, ProductName = "Benny", ProductPrice = 3500 } }; var _builder = new ProductStockReportBuilder(_products); var _director = new ProductStockReportDirector(_builder); _director.BuildStockReport(); var _reports = _builder.GetReport(); Console.WriteLine(_reports); Console.ReadKey(); }
public static void Builder() { var products = new List <Product> { new Product { Name = "Monitor", Price = 200.50 }, new Product { Name = "Mouse", Price = 20.41 }, new Product { Name = "Keyboard", Price = 30.15 } }; var builder = new ProductStockReportBuilder(products); var director = new ProductStockReportDirector(builder); director.BuildStockReport(); var report = builder.GetReport(); Console.WriteLine(report); }
static void Main(string[] args) { Console.WriteLine(""); #region ProgramVariants string[] qsn = { "0-Programdan Çık", "1-Sigleton Design Pattern", "2-Concept Model", "3-Supper Class", "4-Factory Design Pattern", "5-Factory Design Pattern (Başka bir örnek : Hesaplama)", "6-Service Locator Pattern ", "7-Builder Design Pattern" }; for (int i = 1; i <= qsn.Length; i++) { Console.WriteLine("{0} : {1} örneği", i - 1, qsn[i - 1]); } step1: string chosen = Console.ReadLine(); double selectedId; bool girilenDeger = double.TryParse(chosen, out selectedId); if (!girilenDeger) { Console.WriteLine("Girilen değer hatalı.\nBir seçenek seçip ilerleyin!\n"); goto step1; } #endregion //// Bu bölüm de, ilerleyen derslerde bir "Design Pattern" örneği ile refactoring ediliebilir! switch (selectedId) { #region ExitCase case 0: Environment.Exit(0); break; //Console.WriteLine("Hatalı seçim.\nBir seçenek seçip ilerleyin!"); //Main(args); //return; #endregion ExitCase #region SingleTon case 1: ///// Singleton /// Sadece tek bir objenin tekrar tekrar kullanılacağı durumlarda(örn;logger, bidirimler gibi) kullanılıyor. // GetInstance methodu ile aynı obje tekrar tekrar kullanılabilir.. Örnek; Logger log = Logger.GetInstance; Logger log2 = Logger.GetInstance; Console.WriteLine("Log1 : {0}", log.GetHashCode()); Console.WriteLine("Log2 : {0}", log2.GetHashCode()); ///////// instance kodlarının aynı olduğunu görebiliriz. /// break; #endregion SingleTon #region ConceptModel case 2: // Örnek var eg1 = new Person("*****@*****.**", "Muammer K.", new Pop3Mail()); eg1.KullaniciyiBilgilendir(); Console.WriteLine("Bu işlemin Hash Kodu'si : {0}\n{1}\n", eg1.GetHashCode(), "-----------------"); // Örnek - Tek satırda işlem tamamlanabilir var eg2 = new Person("*****@*****.**", "Alice S.", new SmtpMail()); eg2.KullaniciyiBilgilendir(); Console.WriteLine("Bu işlemin Hash Kodu'si : {0}\n{1}\n", eg2.GetHashCode(), "-----------------"); break; #endregion ConceptModel #region superClass case 3: ///// Superclass Console.WriteLine("-------- Super Clas ----"); ClassAile obj = new ClassAile(); obj.Soyisim = "Taha"; obj.Yemek(); Console.WriteLine(""); /// Console.WriteLine("-------- Super Class with Sub Class----"); ClassAile obj2 = new ClassBirey("Yusuf", "Çocuk"); obj2.Soyisim = "Taha"; obj2.Yemek(); Console.WriteLine(""); /// Console.WriteLine("-------- Super Clas ----"); ClassBirey obj3 = new ClassBirey("Cemal", "Baba"); obj3.Soyisim = "Taha"; obj3.Yemek(); break; #endregion superClass #region FactoryDesign case 4: //abstract factory için Örnek1 BaglantiCreator baglantiFabrikasi = new BaglantiCreator(); BaglantiAbstract mmongoDb_abstract_inherit = baglantiFabrikasi.FactoryMethodum(Baglantilar.MongoDb); mmongoDb_abstract_inherit.BaglantiKur(); //interface kullanım ile ÖRnek1 IBaglanti mysql_interface = new MySqlIF(); mysql_interface.BaglantiKur(); //interface kullanım ile Örnek1 IBaglanti oracle_interface = new OracleIF(); oracle_interface.BaglantiKur(); Console.WriteLine("\n\n"); break; #endregion FactoryDesign #region MoreFactoryDesign case 5: //// Interface + factory pattern ile Örnek2 | Hesaplama / dört işlem) Console.WriteLine("Hesaplama yapmak için aşağıdaki değerlerden bir tanesini girin.\n\n1:Topla işlemi \n2:Cikarma işlemi \n3:Bölme işlemi \n4:Çarpma işlemi "); DortIslem diEnum; var girilen = Enum.TryParse <DortIslem>(Console.ReadLine(), out diEnum); IHesaplayıcı hesaplama = new HesaplamaFactory().HesaplayiciFactoryMethod(diEnum); Console.WriteLine("Şimdi Birinci Değeri Girin::"); var deger1 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Şimdi İkinci Değeri Girin::"); var deger2 = Convert.ToDouble(Console.ReadLine()); hesaplama.Hesapla(deger1, deger2); break; #endregion MoreFactoryDesign #region ServiceLocator case 6: //loc => locator => bulan, bulucu! IServiceLocator loc = new ServiceLocator(); IServiceB servisa = loc.GetService <IServiceB>(); Console.WriteLine($"Servis cevabı : {servisa.GetName()}"); break; #endregion ServiceLocator #region BuilderPattern case 7: /// kaynak : https://code-maze.com/builder-design-pattern/ var product = new List <Product> { new Product { Name = "Monitor", Price = 200.50 }, new Product { Name = "Mouse", Price = 20.41 }, new Product { Name = "Keyboard", Price = 30.15 } }; var builder = new ProductStockReportBuilder(product); var director = new ProductStockReportDirector(builder); director.BuildStockReport(); var report = builder.GetReport(); Console.WriteLine(report); break; #endregion BuilderPattern default: Console.WriteLine("Hatalı seçim.\nBir seçenek seçip ilerleyin!"); Console.ReadLine(); //Main(args); break; } Console.WriteLine("\n\r"); Console.WriteLine("Programı kapatmak için Escape tuşuna basın."); Console.WriteLine("\n\r"); ConsoleKeyInfo escExpect = Console.ReadKey(); if (escExpect.Key != ConsoleKey.Escape) { Main(args); } else { Environment.Exit(0); } //Console.ReadLine(); //Console.ReadLine(); }