Description
Abstract Factory is a creational design pattern that lets you produce families of related objects without specifying their concrete classes.
Example in .NET :
AbstractFactory
using Microsoft.Data.SqlClient;
using System.Data.Common;
namespace AbstractFactory;
internal class AbstractFactoryDemo
{
public static void Demo()
{
//create DbConnection factory by using the instance of SqlConnection
DbConnection connection = new SqlConnection();
//create DbCommand instance by using the instance of SqlConnection
DbCommand command = connection.CreateCommand();
//really,the DBCommand is a SqlCommand
SqlCommand? sqlCommand = command as SqlCommand;
//check if the DbCommand is a SqlCommand
Console.WriteLine($"DbCommand is SqlCommand: {sqlCommand != null}");
}
}
Learn More
Source Code for Microsoft implementation of AbstractFactory
Learn More
}
Homework
Imagine you want to produce loggers. You have a logger that logs to a file and a logger that logs to a console and a Nothing Logger – a logger that does nothing. Implement an abstract factory that will allow you to create a logger factory that will create a logger that logs to a file or to a console or nothing.
Leave a Reply