public void CreateProduct_Creator2_MustCreateProduct2() { var creator2 = new ConcreteCreator2(); IProduct product = creator2.Create(); Assert.True(product is ConcreteProduct2); }
static public void Main() { ConcreteCreator1 factory1 = new ConcreteCreator1(); ConcreteCreator2 factory2 = new ConcreteCreator2(); factory1.FactorMethod(); factory2.FactorMethod(); }
public void get_product_2() { var creator = new ConcreteCreator2(); var product = creator.FactoryMethod(); Assert.That(product.GetValue() == ProductTypes.ValueProduct2); }
static void Main(string[] args) { Console.WriteLine("-----------Adapter--------------"); #region Adapter SpecificClass specific = new SpecificClass(); ICommon common = new Adaptee(specific); Console.WriteLine(common.Method()); #endregion Console.WriteLine("-----------Factory--------------"); #region Factory Creator[] creators = new Creator[2]; creators[0] = new ConcreteCreator1(); creators[1] = new ConcreteCreator2(); foreach (Creator creator in creators) { Product product = creator.FactoryMethod(); Console.WriteLine("Created {0}", product.GetType().Name); } #endregion Console.WriteLine("-----------Strategy--------------"); #region Strategy Context context = new Context(new ConcreteStrategy1()); context.ExecuteOperation(); context.SetStrategy(new ConcreteStrategy2()); context.ExecuteOperation(); #endregion Console.WriteLine("-----------Singleton--------------"); #region Singleton Singleton singleton1 = Singleton.GetInstance(); Singleton singleton2 = Singleton.GetInstance(); if (singleton1 == singleton2) { Console.WriteLine("Singleton works, there are same objects."); singleton1.DoLogic(); singleton2.DoLogic(); } else { Console.WriteLine("Singleton incorrect"); singleton1.DoLogic(); singleton2.DoLogic(); } #endregion }
static void Main(string[] args) { CreateSection("Singletons"); Singleton s1 = Singleton.Instance(); Singleton s2 = Singleton.Instance(); if (s1 == s2) { Console.WriteLine("Objects are the same instance."); } EndSection(); CreateSection("Prototypes"); var p1 = new ConcretePrototype1(1); Console.WriteLine("Original ID: {0}", p1.Id); var c1 = (ConcretePrototype1)p1.Clone(); Console.WriteLine("Cloned ID: {0}", c1.Id); EndSection(); CreateSection("Factory"); var creators = new Creator[2]; creators[0] = new ConcreteCreator(); creators[1] = new ConcreteCreator2(); foreach (Creator creator in creators) { Product product = creator.FactoryMethod(); Console.WriteLine("Created {0}", product.GetType().Name); } EndSection(); CreateSection("Observer pattern"); var bookSubject = new BookSubject("Gone Girl", "True Crime"); bookSubject.Attach(new ConcreteObserver("The Librarian")); bookSubject.SubjectType = "Horror"; bookSubject.SubjectType = "Romance"; Console.ReadKey(); }