그래서 나는로부터 상속 원 sealed class
에 CSHARP 및 점화되었다. 소스에 액세스 할 수 없으면 봉인을 해제 할 방법이 없습니다.
그런 다음 "왜 sealed
존재 하는가?"라는 생각이 들었습니다 . 4 개월 전에. 다음과 같은 많은 것들을 읽음에도 불구하고 그것을 알아낼 수 없었습니다.
- Jon Skeet의 희망은 " 클래스는 .NET에서 기본적으로 봉인되었습니다. "
- 상속보다 구성을 선호하십니까?
- "모든 클래스를 봉인해서는 안됩니다 (...)"
- 봉인 된 수업을 어떻게 조롱합니까?
나는 그 이후로 모든 것을 소화하려고 노력했지만 너무 나에게 적합합니다. 결국 어제 나는 다시 시도했다. 나는 그들 모두를 다시 스캔하고 몇 가지를 더 스캔했습니다.
- 왜 수업이 "추상"또는 "최종 / 봉인"이외의 것이어야합니까?
- 15 년 넘게 프로그래밍 을하면서 이미 SOLID에 대해 들어 본 적이 있는데 , 이미 연결된 질문 에 대한 답변으로 4 개월 전에 읽지 않은 것이 분명합니다.
마지막으로, 많은 숙고 끝에 새로운 제목을 바탕으로 원래 질문 을 크게 편집 하기로 결정했습니다 .
오래된 질문은 너무 광범위하고 주관적인했다. 기본적으로 묻습니다.
- 이전 제목에서 : 밀봉을 사용해야하는 좋은 이유
- 본문 : 봉인 클래스를 올바르게 수정하는 방법은 무엇입니까? 상속을 잊어 버리셨습니까? 작곡을 사용하십니까?
그러나 이제는 모든 것이 상속을 막는다는 것을 이해하고 (어제는하지 않았지만) 실제로 상속보다 구성을 사용할 수 있고 사용해야한다는 사실 은 내가 필요한 것이 실제적인 예라 는 것을 깨달았습니다 .sealed
나는 내 질문이 Mindor 씨가 채팅에서 나에게 제안한 것과 정확히 일치 한다고 생각한다 . 상속을위한 디자인은 어떻게 추가 비용을 초래할 수 있는가?