팩토리 패턴이란?
팩토리 패턴이란 객체 생성에 관한 디자인 패턴이다.
상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정, 하위 클래스는 객체 생성에 관한 구체적인 내용을 결정하는 패턴이다.즉, 한 클래스에서 객체를 생성하는 역할을 파생 클래스에게 넘겨 수행하게 하는 것이다.
팩토리 패턴의 장점은 다음과 같다.
1. 상위 클래스와 하위 클래스가 분리되어 느슨한 결합을 가진다.
2. 상위 클래스는 인스턴스 생성 방식에 관해 알지 못하므로 다형성을 가진다.
3. 새로운 기능을 추가할 때 해당 객체만 변경하면 되므로 유연성이 높아진다.
4. 코드 리팩토링시 유지보수가 용이하다.
더보기
Enum이란?
상수의 집합을 정의할 때 사용되는 타입
본질적으로 Thread Safe 하다 -> 싱글톤 패턴에 도움이 된다.
Thread Safe란?
두 개이상의 스레드가 같은 객체에 접근해도 문제 없다는 것.
(싱글톤 패턴 적용 시, 초기 객체를 생성할 때 여러 쓰레드가 동시에 접근하여 생성할 경우 잠재적 문제가 발생할 우려가 있다.
Enum은 자동으로 synchronized하게 생성 & 불변 값이므로 thread safe하다.)
추상 클래스와 팩토리 패턴
C#에서는 추상(abstract) 클래스가 존재한다.
추상클래스는 해당 클래스의 기능을 구현할 수도 있지만
파생 클래스에서 해당 기능을 반드시 구현하도록 인터페이스를 제공하는 기능을 한다.
// 추상 클래스
public abstract class Vehicle
{
public abstract void Drive();
}
// 파생 클래스 1
public class Car : Vehicle
{
public override void Drive()
{
Console.WriteLine("Car is driving.");
}
}
// 파생 클래스 2
public class Bike : Vehicle
{
public override void Drive()
{
Console.WriteLine("Bike is riding.");
}
}
// 팩토리 클래스
public static class VehicleFactory
{
public static Vehicle CreateVehicle(string type)
{
switch (type.ToLower())
{
case "car":
return new Car();
case "bike":
return new Bike();
default:
throw new ArgumentException("Invalid vehicle type.");
}
}
}
'Study > 개념 정리' 카테고리의 다른 글
[Study] SCC (강한 연결 요소) (0) | 2024.11.04 |
---|---|
[Study] 싱글톤 패턴 (4) | 2024.10.03 |
[Study] 디자인 패턴 (0) | 2024.10.01 |
[Study] MVC 패턴 (0) | 2024.08.01 |
[Study] 네트워크 & 렌더링 파이프라인 (1) | 2024.07.26 |