static void Main(string[] args) { #region Withou Factory Pattern string crediCard = "AMEX"; ICreditCard CrediCard = null; if (crediCard == "Discover") { CrediCard = new DiscoverCreditCard(); } else if (crediCard == "Chase") { CrediCard = new ChaseCreditCard(); } else if (crediCard == "AMEX") { CrediCard = new AMEXCreditCard(); } if (CrediCard != null) { Print(CrediCard); } #endregion Without Design Pattern ICreditCard creditCard = CreditCardFactory.getCrediCatd("AMEX"); Print(creditCard); }
static void Main(string[] args) { IcreditCard cardDetails = CreditCardFactory.GetCreditCard("Platinum"); if (cardDetails != null) { Console.WriteLine("CardType : " + cardDetails.GetCardType()); Console.WriteLine("CreditLimit : " + cardDetails.GetCreditLimit()); Console.WriteLine("AnnualCharge :" + cardDetails.GetAnnualCharge()); } else { Console.Write("Invalid Card Type"); } Console.ReadLine(); }
static void Main(string[] args) { //This is going to return an instance of a particular card type object //through the interface IcreditCard. ICreditCard creditCardInstance = new PlatinumCreditCardFactory().CreateProduct(); if (creditCardInstance != null) { Console.WriteLine("Card Type: " + creditCardInstance.GetCardType()); Console.WriteLine("Card Limit: " + creditCardInstance.GetCardLimit()); Console.WriteLine("Annual Charge: " + creditCardInstance.GetAnnualCharge()); } else { Console.WriteLine("Invalid Card type."); } Console.WriteLine("*************************************************************"); creditCardInstance = new MoneybackCreditCardFactory().CreateProduct(); if (creditCardInstance != null) { Console.WriteLine("Card Type: " + creditCardInstance.GetCardType()); Console.WriteLine("Card Limit: " + creditCardInstance.GetCardLimit()); Console.WriteLine("Annual Charge: " + creditCardInstance.GetAnnualCharge()); } else { Console.WriteLine("Invalid Card type."); } Console.WriteLine("******************************Credit Card Factory Layer is another abstract layer*******************************"); //This is going to return an instance of a Particular Card type object int cardType = Convert.ToInt32(Console.ReadLine()); ICreditCard cardFactory = new CreditCardFactory().CreateObject(cardType); if (creditCardInstance != null) { Console.WriteLine("Card Type: " + cardFactory.GetCardType()); Console.WriteLine("Card Limit: " + cardFactory.GetCardLimit()); Console.WriteLine("Annual Charge: " + cardFactory.GetAnnualCharge()); } else { Console.WriteLine("Invalid Card type."); } Console.ReadLine(); }