C# Property 와 public 필드는 동일한 개념이 아니다

프로퍼티는 메서드이다

필드랑 다른 개념이며 
신뢰성과 안정성, 유지보수, 확장성을 늘려준다. 


신뢰성으로 데이터를 가져오는 것만 가능하거나, 불러오는 것만 가능하게 하거나,
둘다 가능하게 설정할 수 있다. 
즉, 필드 값를 사용자 마음대로 조작해 오류가 생기는 일을 방지한다.

안정성으로 데이터를 가져오거나 불러올 때 과정을 안전하게 처리해준다. 
예시로 Health라는 변수가 있다고 하자.
가장 간단한 예시로 최소HP를 0으로 최대를 100으로 둘 때
필드로 설정하면 어떠한 사용자 로직이 사용되지 않기에 값이 오버/언더한다.
프로퍼티라는 메소드를 사용하면 값을 넘어도 무조건 값이 0~100 사이에 저장된다.

유지보수에서 어디 에러가 터졌을 때 Health 프로퍼티의 내부 로직만 수정하면 될 것을
필요한 스크립트 하나하나 Health 스크립트를 검색하게 만드는 걸 막는다.
즉, 불필요한 스크립트 탐색,참조를 줄인다.

확장성으로  Health에서 UI로 표시되게 하자! 라고 내부로직을 추가 할 수 있다. 
OnHealthChange 라는 이벤트로 UI 스크립트에 등록시켜 간단히 처리가 가능하다.
필드라면 체력이 증가,감소하는 메소드에 UI스크립트를 등록시켜야 하는 등 일이 증가한다
또 interface 멤버로 가질 수 있다. 즉 추상화가 가능하다.



댓글

이 블로그의 인기 게시물

2D 총게임 반동 표시

Simple Stupid Funnel 후기