public void CreateShipEarth() { AbstractFactory factory = new Abstract1(EarthAbstractFactory.Instance); var ship = factory.CreateFrigate(); Assert.IsNotNull(ship); }
static void TestFactoryOverBuilder(int m) { double[] times = new double[5]; TimeSpan roznica; DateTime startTime, stopTime; Ships ship; // AbstractFactory AbstractFactory abstractFactory1 = new Abstract1(EarthAbstractFactory.Instance); startTime = DateTime.Now; for (int i = 0; i < m; i++) { ship = abstractFactory1.CreateFrigate() as Ships; } stopTime = DateTime.Now; roznica = stopTime - startTime; times[2] = roznica.TotalMilliseconds; // Builder1 var constructor11 = new Constructor1(); startTime = DateTime.Now; for (int i = 0; i < m; i++) { Builder1.Frigate1 builder1 = constructor11.Constructor(new Cobalt1()); } stopTime = DateTime.Now; roznica = stopTime - startTime; times[3] = roznica.TotalMilliseconds; Console.WriteLine("Porównanie czasu tworzenia obiektów przez fabryke i Builder:"); Console.WriteLine("Abstract Factory: " + times[2] + " ms"); Console.WriteLine("Builder2: " + times[3] + " ms"); //Console.ReadKey(); }
static void Main(string[] args) { int n = 1000000; // 1 mln double[] times = new double[5]; TimeSpan roznica; DateTime startTime, stopTime; var simpleFactory = SimpleFactory.Instance; Ships ship; startTime = DateTime.Now; for (int i = 0; i < n; i++) { ship = simpleFactory.CreateFrigate("cobalt"); } stopTime = DateTime.Now; roznica = stopTime - startTime; times[0] = roznica.TotalMilliseconds; //------------------------------------------------------------------------------ startTime = DateTime.Now; MethodFactory methodFactory = EarthFactory.Instance; for (int i = 0; i < n; i++) { ship = methodFactory.BuildFrigate("cobalt") as Ships; } stopTime = DateTime.Now; roznica = stopTime - startTime; times[1] = roznica.TotalMilliseconds; //------------------------------------------------------------------------------ AbstractFactory abstractFactory = new Abstract1(EarthAbstractFactory.Instance); startTime = DateTime.Now; for (int i = 0; i < n; i++) { ship = abstractFactory.CreateFrigate() as Ships; } stopTime = DateTime.Now; roznica = stopTime - startTime; times[2] = roznica.TotalMilliseconds; //------------------------------------------------------------------------------ RegistrationFactory registrationFactory = RegistrationFactory.Instance; registrationFactory.BuildShip("cobalt", typeof(Frigate)); startTime = DateTime.Now; for (int i = 0; i < n; i++) { ship = abstractFactory.CreateFrigate() as Ships; } stopTime = DateTime.Now; roznica = stopTime - startTime; times[3] = roznica.TotalMilliseconds; //------------------------------------------------------------------------------ RegistrationFactoryWithReflection reflectionFactory = RegistrationFactoryWithReflection.Instance; reflectionFactory.BuildShip(); startTime = DateTime.Now; for (int i = 0; i < n; i++) { ship = abstractFactory.CreateFrigate() as Ships; } stopTime = DateTime.Now; roznica = stopTime - startTime; times[4] = roznica.TotalMilliseconds; Console.WriteLine("Porównanie czasu tworzenia obiektów przez fabryki:"); Console.WriteLine("Simple Factory: " + times[0] + " ms"); Console.WriteLine("Factory Method: " + times[1] + " ms"); Console.WriteLine("Abstract Factory: " + times[2] + " ms"); Console.WriteLine("\nZ rejertracją klas:"); Console.WriteLine("NoReflection: " + times[3] + " ms"); Console.WriteLine("Reflection: " + times[4] + " ms"); Console.ReadKey(); }