Microsoft MVP성태의 닷넷 이야기
추상클래스로와 new [링크 복사], [링크+제목 복사]
조회: 519
글쓴 사람
한예지
홈페이지
첨부 파일
 
선생님 안녕하세요!
추상 클래스로 만들면 명시적으로 new 방지할 수 있다고 하는데
명시적으로 new 방지하면 어떤 장점이 있는지 궁금합니다..
굳이 명시적으로 new를 방지해야 되는 상황이 존재하나요?




donaricano-btn



[최초 등록일: ]
[최종 수정일: 1/1/2021 ]


비밀번호

댓글 쓴 사람
 



2021-01-01 02시36분
그런 상황은 거의 없습니다. 단지 있으면 사용하시면 됩니다. (참고로, System.Data.SqlClient.SqlConnection의 기반 클래스인 System.Data.Common.DbConnection 타입은 추상 클래스입니다.)
정성태
2021-01-01 09시15분
[dimohy] 디자인 패턴 관점에서 사용자가 클래스의 기능을 이용하기 위해 직접 new를 통해 생성하는 방법을 이해하지 못해도 생성해서 사용할 수 있게 합니다.
이런 기법은 실제 생성된 인스턴스의 클래스에는 직접 접근하지 못하게 하고 그 상위 클래스는 추상 클래스로 접근 가능하게 합니다. 일종의 객체지향의 블랙박스 기법입니다. 정성태님이 소개한 것 처럼 db provider등의 모듈에서 이런 기법을 많이 씁니다.
[손님]

... [16]  17  18  19  20  21  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
5042황윤하8/20/20183171모드버스 TCP 관련 질문 [2]
5041david8/18/20182523.NET WebAPI 에서 Response 지연되는 이유 [3]
5040농상8/14/20182672정규표현식에 대해서 [3]
5039유영태8/14/20183779비동기 소켓사용후 해당 스레드가 남아있을때 처리 방법 [4]파일 다운로드1
5038이정석8/9/20182385서버파일 로컬파일 비교 [2]
5037jjh8/8/20183882c# 으로 화면캡쳐해서 동영상으로 만드는앱을 만들고싶습니다 [5]
5036볼딱지8/8/20182738C# programming 개발 관련 질문이 있습니다. [1]
5035궁금합니다.8/8/20182929C# 버전 고민 어떤 책을 사야하나요? [1]
5034신동열8/8/20182498덤프 파일 분석 관련해서 문의 드려요. [1]
5033최규성8/7/20182862C# WinForm, Oracle 9i 로 프로그래밍시 ODP.NET, 배포 설정 방법 질문입니다. [4]
5032이정석8/6/20184891C# 으로 만들 dll 등록 [7]
5031J.S.8/6/20182263System.Array class의 구조에 대한 질문 [1]
5030농상8/4/20183000람다 식을 이용한 메서드 정의 확대를 공부하고 있습니다. [2]
5029SoulToMind8/3/20182440C# ActiveX 컨트롤 질문드립니다. [4]
5028도토리8/1/20182976혹시 회사에서 TFS 구축시 SQL-Server 라이선스 정책 아시는분 계신지요? [2]
5027농상7/31/20182852Freachable Queue의 발음을 표기하면 어떨까요? [2]
5026농상7/31/20183632소멸자의 이름에 대해서 [2]
5025김기철7/30/20182737selenium 질문좀 드릴개요 [3]
5024농상7/29/20182336패턴 매칭 when에 대해서 질문있습니다. [2]
5023농상7/28/20183514패턴매칭에 대해서 질문 있습니다. [1]
5022농상7/28/20182148튜플에 대해서 건의가 있습니다. [1]
5021농상7/27/20182131예외필터에 대해서 질문이요 [4]
5020농상7/27/20183446null 조건 연산자 예제에서 잠깐 혼동이 일어났습니다. [1]
5019농상7/26/20184667오버플로우와 언더플로우 [2]
5018이재윤7/26/20182724정말 간단한 질문일 수 있는데요! [1]
5017나나7/24/20184445Stopwatch.ElapsedTicks와 Stopwatch.ElapsedMilliseconds [9]
... [16]  17  18  19  20  21  22  23  24  25  26  27  28  29  30  ...