Beispiel #1
0
    public void ClientMethod(IAbstractFactory factory)
    {
        IAbstractProductA productA = factory.CreateProductA();
        IAbstractProductB productB = factory.CreateProductB();

        Console.WriteLine(productB.GetInfo());
    }
Beispiel #2
0
        public void run(IAbstractFactory factory)
        {
            IAbstractProductA p1 = factory.CreateProductA();
            IAbstractProductB p2 = factory.CreateProductB();

            p2.Interact(p1);
        }
Beispiel #3
0
        public void ManufactureSet(IAbstractFactory factory)
        {
            IAbstractProductA productA = factory.CreateProductA();
            IAbstractProductB productB = factory.CreateProductB();

            Debug.WriteLine("Created: " + productA.SomeFunction() + ", " + productB.SomeFunction());
            Debug.WriteLine("Tested: " + productB.AnotherFunction(productA));
        }
Beispiel #4
0
        public Client(IAbstractFactory factory)
        {
            productA = factory.CreateProductA();
            productB = factory.CreateProductB();

            productA.ProductDescription();
            productB.ProductDescription();
        }
Beispiel #5
0
    public void ClientMethod(IAbstractFactory factory)
    {
        IAbstractProductA productA = factory.CreateProductA();
        IAbstractProductB productB = factory.CreateProductB();

        Console.WriteLine(productB.UsefulFunctionB());
        Console.WriteLine(productB.AnotherUsefulFunctionB(productA));
    }
        public void get_product_A()
        {
            {
                IAbstractProductA prod = GetProduct(factory: new ConcreteFactory1());

                Assert.That(prod.GetValue() == ProductTypes.ProductA1);
            }

            {
                IAbstractProductA prod = GetProduct(factory: new ConcreteFactory2());

                Assert.That(prod.GetValue() == ProductTypes.ProductA2);
            }

            IAbstractProductA GetProduct(IAbstractFactory factory) => factory.CreateProductA();
        }
 public Client(IAbstractFactory factory)
 {
     _productA = factory.CreateProductA();
     _productB = factory.CreateProductB();
 }
 public void Interact(IAbstractProductA product)
 {
     Console.WriteLine($"Product set: {product.GetType().Name} and {GetType().Name}");
 }
 public virtual void Interact(IAbstractProductA a)
 {
     //--- Interact with 'a'
 }
 public Tester(IAbstractFactory factory)
 {
     this.abstractProductA = factory.CreatePorductA();
     this.abstractProductB = factory.CreatePorductB();
 }
        public string AnotherUsefulFunctionB(IAbstractProductA collaborator)
        {
            var productA = collaborator.UsefulFunctionA();

            return($"Eu estou recebendo esse cara => {productA}");
        }
Beispiel #12
0
 public string AnotherUsefulFunctionB(IAbstractProductA productA)
 {
     return("The result of the B2 collaborating with the " + productA);
 }
 public Client(IAbstractFactory factory)
 {
     abstractProductA = factory.CreateProductA();
     abstractProductB = factory.CreateProductB();
 }
Beispiel #14
0
 //--- C'tor
 public ClientClass(IAbstractFactoryBase factory)
 {
     abstractProductB = factory.CreateAbstractProductB();
     abstractProductA = factory.CreateAbstractProductA();
 }
Beispiel #15
0
 public virtual void Interact(IAbstractProductA a)
 {
     //--- Interact with 'a'
 }
Beispiel #16
0
 public string func2(IAbstractProductA input)
 {
     return($"blue B acts with {input.func1()}");
 }
 //--- C'tor
 public ClientClass(IAbstractFactoryBase factory)
 {
     abstractProductB = factory.CreateAbstractProductB();
     abstractProductA = factory.CreateAbstractProductA();
 }
 /// <summary>
 /// Совместная работа различных продуктов.
 /// Продукты вполне могут между собой взаимодействовать.
 /// При этом фабрика будет гарантировать, что эти продукты будут совместимы,
 /// не смотря на то, что в объявлении указывается абстрактный продукт.
 /// </summary>
 /// <param name="productA"> Первый продукт. </param>
 /// <returns> Результат взаимодействия первого и второго продукта. </returns>
 public string WorkWithProductA(IAbstractProductA productA)
 {
     return($"B1 выполнил работу совместно с ({productA.Name})");
 }
Beispiel #19
0
        //变型产品B1只能与变型产品A1正常工作。(不太懂...)
        //然而,它接受任何AbstractProductA实例作为参数。
        public string AnotherFunctionB(IAbstractProductA productA)
        {
            var result = productA.FunctionA();

            return($"The result of the B1 collaborating with the ({result})");
        }
        // La variante, Producto B2, solo puede funcionar correctamente con la
        // variante, Producto A2. No obstante, acepta cualquier instancia de
        // AbstractProductA como argumento.
        public string AnorherUsefulFunctionB(IAbstractProductA collaborator)
        {
            var result = collaborator.UsefulFunctionA();

            return($"El resultado del B2 colaborando con el ({result})");
        }
Beispiel #21
0
 public void Interact(IAbstractProductA a)
 {
     Console.WriteLine(this.GetType().Name + " взаимодействует с " + a.GetType().Name);
 }
Beispiel #22
0
        // The variant, Product B1, is only able to work correctly with the
        // variant, Product A1. Nevertheless, it accepts any instance of
        // AbstractProductA as an argument.
        public string AnotherUsefulFunctionB(IAbstractProductA collaborator)
        {
            var result = collaborator.AddingFunction(1);

            return(Text.WithTheResultFromTheFirstFunction(result));
        }
 public string AnotherFunction(IAbstractProductA collaborator)
 {
     return("ConcreteProductB1 collaborates with " + collaborator.SomeFunction());
 }
 private static void ClientMethod(IAbstractFactory factory)
 {
     _productA = factory.CreateProductA();
     _productB = factory.CreateProductB();
 }
Beispiel #25
0
 public void Interact(IAbstractProductA a)
 {
     Console.WriteLine(this + " Interacts with " + a);
 }
Beispiel #26
0
        public string AnotherMethodB(IAbstractProductA collaborator)
        {
            var result = collaborator.MethodA();

            return($"The result of the B2 collaborating with the ({result})");
        }
        public string AnotherUsefulFunctionB(IAbstractProductA collaborator)
        {
            var result = collaborator.UsefulFunctionA();

            return($"The result of the B1 collaborating with the ({result})");
        }
Beispiel #28
0
 public Client(IAbstractFactory factory)
 {
     this._a = factory.CreateProductA();
     this._b = factory.CreateProductB();
 }