삽질의 현장/- .NET

#030_닷넷(.NET)_.Net Framework 기본 - 생성자 주의 사항

shovelman 2015. 10. 27. 16:34


안녕하세요 삽잡이입니다.


이번 시간에는 생성자를 구현할 때에 주의해야할 점에 대해서 

알아보고자합니다.


생성자는 클래스를 인스턴스화 할 때 한번 호출되는 메서드입니다.

그리고 클래스는 필요한 곳이면 어디든지 가져다 쓰기 위해서 만든 정의 묶음이지요...

즉, 객체지향 측면에서 바라볼 때

이미 만들어놓은 클래스를 다른 곳에서 가져다 쓸 일이 비일비재하다는 것입니다.


따라서 가져다 쓸 사용자의 입장을 바라볼 때

누구나 범용적으로 사용할 수 있도록 명확한 클래스를 정의해야합니다.


또한, 생성자에서는 분명 명확한 코드만을 포함시켜야합니다.

생성자가 호출된다는 것은 물리적으로 메모리에 객체를 생성하고 

생성자를 호출해서 그 메모리의 값들을 초기화하는 것입니다.


생성자를 이야기할 때에는 생성자를 호출해야 

객체가 만들어지는 것이라고 생각할 수 있지만 

사실은 아닙니다.

물리적으로는 객체가 만들어지고, 

생성자를 호출해서 메모리를 초기화하는 것입니다.

즉, 생성자는 객체를 만드려는 것이 아닌 객체의 초기화를 위해 호출된다는 것입니다.


생성자에서 예외가 발생하면 뭔가... 어중간한(?) 현상이 나타납니다.

뭔말이냐하면, 객체가 만들어졌지만 초기화가 됬다는 보장을 할 수 없게 된다 이겁니다.

만약, 생성자에서 네트워크 접속, 다른 메모리를 추가적으로 생성한다던지의 

작업을 한다고 해봅시다...

좀... 애매해지지요...


따라서 생성자 부분에서는 예외가 발생할 것 같은 코드를 작성하면 안됩니다.

생성을 하다가 말거나, 초기화를 하다가 말거나... 이래서는 안됩니다.

따라서 명확한 코드만을 작성해야합니다.


이상 삽잡이였습니다!