프로그래밍/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();
 }

'프로그래밍 > C#' 카테고리의 다른 글

[C#] C# 10.0 CallerArgumentExpression특성  (0) 2025.01.02
[WPF] ObservableObject  (0) 2024.12.24
[C#] CPU, DISK I/O 스트레스 테스트  (0) 2024.10.18
[WPF] GroupBox 안에 2개 이상의 요소 넣기  (0) 2024.10.15
[C#] WPF Func<T>  (0) 2024.09.27