프로그래밍/C#

[C#] 팩토리 패턴

Victory_HA 2025. 1. 3. 15:17

팩토리 패턴

  • 직접 생성자(new 연산자)호출 사용 대신 객체 생성 시 사용됩니다.
  • 팩토리 메서드의 반환 유형은 일반적으로 추상 클래스 또는 인터페이스로 선언됩니다.

샘플 코드

 static void Main(string[] args)
 {
     IDBConnector dbConnector = DBFactory.CreateDBConnector("Oracle");
     dbConnector.Connection();
     dbConnector.Disconnection();
 }

 public class DBFactory
 {
     public static IDBConnector CreateDBConnector(string dbType)
     {
         return dbType switch 
         { 
             "Oracle" => new OracleDB(),
             "PostgreSQL" => new PostgreSQL(),
             _ => throw new NotImplementedException() 
         };
     }
 }

 public interface IDBConnector : IDisposable
 {
     void Connection();
     void DisConnection();
 }

 public class OracleDB : IDBConnector
 {
     public void Connection() => 
         Console.WriteLine($"Connected OracleDB Executor");
     public void Disconnection() =>
         Console.WriteLine($"Disconnected OracleDB Executor");
     public void Dispose() => Dispose();
 }

 public class PostgreSQL : IDBConnector
 {
     public void Connection() =>
         Console.WriteLine($"Connected PostgreSQL Executor");
     public void Disconnection() =>
         Console.WriteLine($"Disconnected PostgreSQL Executor");
     public void Dispose() => Dispose();
 }