You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
2.0 KiB

3 years ago

3 years ago
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Factory
{
/*
* :
* : Factory .
*
3 years ago
* static factory method:
*
* simple factory: , new를
* .
*
* factory method: .
* factory .
*
* abstract factory: .
* .
3 years ago
*/
class Program
{
static void Main(string[] args)
{
// static factory method
3 years ago
StaticFactoryMethod.ILogger staticFactoryLogger = StaticFactoryMethod.LoggerFactory.Create(StaticFactoryMethod.LoggerType.DB);
// simple factory
SimpleFactory.LoggerFactory simpleFactory = new SimpleFactory.LoggerFactory();
SimpleFactory.DbLogger simpleFactoryLogger = simpleFactory.CreateDbLogger();
// factory method1
FactoryMethod.LogFactory factoryLogger1 = new FactoryMethod.XmlLogFactory();
factoryLogger1.Log("something to be logged");
3 years ago
3 years ago
// factory method2
FactoryMethod.LogFactory factoryLogger2 = FactoryMethod.LogFactory.GetLogger();
factoryLogger2.Log("something to be logged");
3 years ago
3 years ago
// abstract factory method
AbstractFactory.AbstractFactory abstractFactorty = new AbstractFactory.ConcreteFactory2();
AbstractFactory.ProductA prodA = abstractFactorty.CreateProductA();
AbstractFactory.ProductB prodB = abstractFactorty.CreateProductB();
3 years ago
}
}
}