본문 바로가기

C#

template method

...
using System;

public abstract class Dragon
{
	public int hp;
	public int atk;

	public abstract void UpGround();
	public abstract void DownGround();
    
    public bool IsCheackTargetAlive()
    {
    	return true;
    }
    
    public void Attack()
    {
    	UpGround();
        Debug.Log("공격한다");
    	DownGround();
        
        if(IsCheackTargetAlive())
        {
        	Attack();
        }
    }
}


public class BlueDragon : Dragon
{

	public override void UpGround()
	{
		Debug.Log("올라왔다");
	}

	public override void DownGround()
	{
		Debug.Log("내려왔다");
	}
}

 

안겹치는 부분만 추상함수로 만들어버리는 게 템플릿 메서드.

 

부모에선 이름만 쓰고 자식에서 정의함.

'C#' 카테고리의 다른 글

Parameter / Arguments 차이  (0) 2022.06.22
리플렉션  (0) 2022.06.22
EventHandler  (0) 2022.06.21
프로퍼티  (0) 2022.06.21
전략적 패턴  (0) 2022.06.20