Last active
October 24, 2017 03:20
-
-
Save iwouldnot/4c727e55fa18e8fafaf92f6ca41e4480 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Text; | |
using System.Threading.Tasks; | |
namespace constr_PO_laba8 | |
{ | |
abstract class AbstractFactory | |
{ | |
public abstract AbstractProductA CreateProductA(); | |
public abstract AbstractProductB CreateProductB(); | |
} | |
class ConcreteFactory1 : AbstractFactory | |
{ | |
public override AbstractProductA CreateProductA() | |
{ | |
return new ProductA1(); | |
} | |
public override AbstractProductB CreateProductB() | |
{ | |
return new ProductB1(); | |
} | |
} | |
abstract class AbstractProductA | |
{ } | |
abstract class AbstractProductB | |
{ } | |
class ConcreteFactory2 : AbstractFactory | |
{ | |
public override AbstractProductA CreateProductA() | |
{ | |
return new ProductA2(); | |
} | |
public override AbstractProductB CreateProductB() | |
{ | |
return new ProductB2(); | |
} | |
} | |
class ProductA1 : AbstractProductA | |
{ | |
public ProductA1() | |
{ | |
Console.WriteLine("A1 created"); | |
} | |
} | |
class ProductB1 : AbstractProductB | |
{ | |
public ProductB1() | |
{ | |
Console.WriteLine("B1 created"); | |
} | |
} | |
class ProductA2 : AbstractProductA | |
{ | |
public ProductA2() | |
{ | |
Console.WriteLine("A2 created"); | |
} | |
} | |
class ProductB2 : AbstractProductB | |
{ | |
public ProductB2() | |
{ | |
Console.WriteLine("B2 created"); | |
} | |
} | |
class Client | |
{ | |
private AbstractProductA abstractProductA; | |
private AbstractProductB abstractProductB; | |
public Client(AbstractFactory factory) | |
{ | |
abstractProductA = factory.CreateProductA(); | |
abstractProductB = factory.CreateProductB(); | |
} | |
} | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
ConcreteFactory1 factory1 = new ConcreteFactory1(); | |
Client client1 = new Client(factory1); | |
Client client2 = new Client(factory1); | |
Console.WriteLine("________________________________\n"); | |
ConcreteFactory2 factory2 = new ConcreteFactory2(); | |
Client client3 = new Client(factory2); | |
Client client4 = new Client(factory2); | |
Console.ReadLine(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment