팩토리 메서드는 메서드를 구상할때 팩토리 메서드가 구상하는 것이 아닌
Sub 클래스 메서드가 구상하게 만드는 패턴이다.
왜 사용해야 할까?
예를 들어 모바일 어플리케이션용 메서드를 만들었는데 안드로이드와 IOS 에 둘다 구동해야한다면
서브 클래스가 그것을 판별해서 구상하게 만드는 편이 유지보수가 편할 것 이다.

프로토타입 패턴과 유사하다.
실제 코드
팩토리 메서드 클래스
class ShapeFactory
{
public virtual IShape GetShape(string type)
{
switch (type)
{
case "Circle":
return new Circle();
case "Square":
return new Square();
case "Rectangle":
return new Rectangle();
default:
// no passed parameter or any non-known parameter returns null
return null;
}
}
}
3가지 구상 클래스중 하나 (Shape 중 Rectangle)
class Rectangle : IShape
{
public void draw()
{
Console.WriteLine("Inside rectangle's draw method");
}
}
프로그램 실행 코드
class Program
{
static void Main(string[] args)
{
ShapeFactory factory = new ShapeFactory();
IShape circle = factory.GetShape("Circle");
IShape rectangle = factory.GetShape("Rectangle");
IShape square = factory.GetShape("Square");
circle.draw();
rectangle.draw();
square.draw();
}
}
결과값 ->
Inside Circle's draw method
Inside rectangle's draw method
Inside square's draw method
'개인공부 > 소프트웨어 개발 패턴' 카테고리의 다른 글
| (구조패턴) Adapter 어댑터 패턴 (2) | 2024.10.17 |
|---|---|
| (구조패턴) Composite 컴포짓 패턴 (0) | 2024.10.16 |
| (생성패턴) Builder 빌더 디자인 패턴 (0) | 2024.10.16 |
| (생성패턴) Abstract Factory 추상 팩토리 패턴 (1) | 2024.10.15 |
| (생성패턴) Singleton 싱글턴 패턴 (0) | 2022.07.16 |