TextRpg 팀 프로젝트중 생성자를 사용한 Player이란 클래스가 있어서 왜 사용해야하는지 너무 궁금해서 팀원들과 토론을 했었다.

 

대화를 하면서 그렇게 사용할 수 있구나는 느꼈지만 그렇게 사용해야하는 이유가 뭘까 ? 라는 궁금증이 생겼고,

그 내용을 찾아보기로 했다.

 

생성자를 사용하는 기본적인 이유는 코드의 명확성유지보수성, 안정성이다.

 

생성자를 사용하면 객체를 만들자 마자 개발자가 원하는 특정 상태로 설정할 수 있고

객체 초기화를 단순화해주고 불필요한 코드도 줄일 수 있다.

이로써 코드의 가독성도 좋아지고 객체가 올바르게 초기화되지 않으면 생성 자체가 되지 않아

코드의 안정성도 올라간다.

 

public class Player
{
    public string Nickname { get; set; }
    public string Job { get; set; }

    public Player(string nickname, string job)
    {
        Nickname = nickname;
        Job = job;
    }
}

 

위의 코드와 같이 작성해두면

 

Player player = new Player("MyName", "Gamer");

위의 코드를 작성하면

 

한줄로 Player 객체에 닉네임과 직업을 바꿔주고

 

그 바꿔준 값을 player변수에 객체를 바로 담아줄 수 있고 그 이후에도 그 데이터를 사용할 수 있다.

 

또한 위와같이 player 객체를 생성해뒀다면

 

public void PlayerInfo(Player player)
    {
        Console.WriteLine($"Player Nickname: {player.Nickname}");
        Console.WriteLine($"Player Job: {player.Job}");
    }

 

메서드에서 Player 객체를 매개변수로 받아서 사용할 수 있다 (객체가 아님)