팩토리 메서드 패턴(Factory Method Pattern)
"본문 내용"은 언제나 휴일 본 사이트에 있습니다.
▶EHApp.cs
namespace FactoryMethod { abstract class EHApp //뼈대를 제공하는 추상 클래스 { protected IView MainView { get; set; } public virtual void InitInstance() { MainView = MakeView();//뷰 개체를 설정 } public virtual void Run() { MainView.Show(); } public virtual void ExitInstance() { MainView = null; } protected abstract IView MakeView();//뷰 개체를 생성하는 메서드 약속 } } |
▶IView.cs
namespace FactoryMethod { interface IView { void Show();//보여주기 기능에 대한 메서드 약속 } } |
▶MyView.cs
using System; namespace FactoryMethod { class MyView:IView { public MyView() { Console.WriteLine("MyView 개체 생성"); } public void Show() { Console.WriteLine("메인 뷰 활성화"); } } } |
▶MyApp.cs
using System; namespace FactoryMethod { class MyApp:EHApp { public override void InitInstance()//재정의 { Console.WriteLine("MyApp 초기화"); base.InitInstance(); } public override void ExitInstance()//재정의 { base.ExitInstance(); Console.WriteLine("MyApp 해제"); } protected override IView MakeView()//뷰 개체를 생성하는 메서드 구체적 구현 { return new MyView(); } } } |
▶Program.cs
namespace FactoryMethod { class Program { static void Main(string[] args) { MyApp app = new MyApp(); app.InitInstance(); app.Run(); app.ExitInstance(); } } } |
▶실행 결과
MyApp 초기화 MyView 개체 생성 메인 뷰 활성화 MyApp 해제 |
'.NET > 설계 패턴(C#)' 카테고리의 다른 글
[설계 패턴 C#] 6. 적응자 패턴 (0) | 2016.06.09 |
---|---|
[설계 패턴 C#] 단일체 패턴(Singleton Pattern) (0) | 2016.04.17 |
[설계 패턴 C#] 원형 패턴(Prototype Pattern) (0) | 2016.04.17 |
[설계 패턴 C#] 빌더 패턴(Builder Pattern) (0) | 2016.04.17 |
[설계 패턴 C#] 추상 팩토리 패턴 (Abstract Factory Pattern) (0) | 2016.04.17 |