디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

추상클래스 인터페이스는 언제쓰냐고? 기본적으로 써야함 ㅇㅇ

ㅆㅇㅆ(124.216) 2025.01.22 19:01:37
조회 1363 추천 11 댓글 15



인터페이스- 모든 메서드가 추상 메서드지만, 다중상속 가능, '선언'만 가지고 있고, '구현' 을 명시적으로 요구함.


추상클래스- 모든 메서드를 추상 메서드로 할 필요 없고, 단일 상속만 가능. '추상메서드의 구현의 강제'


추상클래스는 추상메서드의 강제적 구현을 요구함. 다만 추상클래스는 일반메서드도 포함시킴으로써, 상속할때 일반 메서드는 추상클래스에서 구현하게 돌릴 수 있음


비슷하게 가상 테이블을 활용한 가상 클래스(버츄얼)는 꼭 구현을 강제하지 않더라도, 구현을 하지 않으면 상속받는 버츄얼 클래스에서 구현된거 실행하게함


하지만 이 버츄얼 클래스와 추상클래스는 낮은 추상도를 가지고 있고 OOP에서 상속을 함으로써 사실상 캡슐화를 위반하는 사례가 생길 수 있음.

(상속 구조에 따라서 잘못된 캡슐화가 발생할 수 있음)


다르게 말해서 이 캡슐화가 깨진다는 것은 프로그래머가 프로퍼티와 메서드 기능 범위를 파악하기 어렵게됨


따라서 인터페이스를 추가함으로써 메시징을 강화해서 범위 통제를 강화함


그리고 이 인터페이스를 통한 메시징을 함으로써 객체간의 최소한의 통신을 할 수 있게된거


따라서 일반적으로 최근의 '좋은' 프로그래밍은 인터페이스로 통신하는 걸 권장함. 물론 이거에 더해서 컴포지션도 더해야하는거고


물론 컴포넌트와 추상클래스의 경우에도 기능의 재사용성, 객체 단순화할때 컴포넌트로 분리하긴함. 다만 어쨌건 현대적 프로그래밍에서는 인터페이스는 사실 빠질수가 없긴해.


패턴의 경우에는


패턴을 많이 쓰냐 덜 쓰냐는 걍 패턴을 어디에 쓰는지만 알면 다 쓸 수 있음


MVP같은 코드 아키텍쳐에 빌더 패턴도 메서드 체이닝을 통한 Fluent Builder로 바꿔 쓸 수 있듯이 말이지.


결국 패턴은 일종의 산물이라서 알수록 많이 쓸 수 있는거지 꼭 쓸 필요 없음


그리고 많이 쓰는 패턴은 사람의 성향에 따라 다른거지.


오히려 나의 경우에는 더티 플래그를 제일 많이 쓰는듯.


다만 이부분은 웹분야가 아니라서 뭐라하긴힘든데, 꼭 쓸 필요도 없고 주력 패턴 몇개 정해두면 쉽긴함


다만 패턴도 람다식을 이용해서 쓸 수 있음 


개인의 코드 컨벤션에 따라 전략 패턴은 람다식으로 간단하게 고친다거나, 


커맨드 패턴의 경우도 비슷하게 메서드 참조나 익명함수로 표기할 수 있음


팩토리도 람다식과 딕셔너리를 통해서 더 간단하게 바꿀 수 있음


다만 결국 팀의 컨벤션에 따라서 어떻게 하냐 다른거지 뭐.


기본적으로 로직 캡슐화를 할때 람다식을 많이 쓰지. 다만 이럴 경우 람다식에 해박한 팀원이 존재해야하고 코드 일관성때문에


선호되지 않을뿐. 기본적으로 람다식같은 FP는 코드의 예측가능성을 높일 수 있긴한데, 기본적으로 코드 일관성이라는 또다른 문제와 맞닿뜨릴 수 있음


다만 저런식으로 쓸 경우엔 기본적으로 메모리 사용량을 추가로 사용해서 불필요한 오버헤드가 발생할 수도 있다~ 라는 점도 염두에 두는데


현대적 컴파일러에서는 그정도는 무시해도됨 ㅇㅇ



추천 비추천

11

고정닉 4

3

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
AD 디지털 액세서리 기간한정 세일! 운영자 25/07/11 - -
2870929 다가닥 다가닥 ㅇㅅㅇ [3] 헤르 미온느갤로그로 이동합니다. 07.11 34 0
2870928 그놈 kde 최신판 속도 비교 [2] 발명도둑잡기(118.216) 07.11 41 0
2870927 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 07.11 24 0
2870926 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 07.11 23 0
2870925 마이크로소프트가 축구, 야구 게임도 팔았구나 발명도둑잡기(118.216) 07.11 19 0
2870924 사무실 선정리 어캐 해야 하냐? [2] illilj갤로그로 이동합니다. 07.11 46 0
2870922 양기 발산 발명도둑잡기(118.216) 07.11 29 0
2870920 나는조현병이야 나는내향적이야 [2] 손발이시립디다갤로그로 이동합니다. 07.11 32 0
2870916 웃흥~ ♥냥덩이♥갤로그로 이동합니다. 07.11 31 0
2870914 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 07.11 26 0
2870910 이재명 이 인간이 공공의료 사고 나몰라한다. 넥도리아(223.38) 07.11 44 0
2870908 나 제모함. 사타구니 넥도리아(175.196) 07.11 32 0
2870906 부산 시민 20% 우울 불안 프갤러(183.101) 07.11 44 0
2870905 프갤망했노 ㅇㅇ(222.232) 07.11 33 0
2870903 노트북 추천좀 퍄퍄_갤로그로 이동합니다. 07.11 82 0
2870901 프리랜서도 결국은 비정규직 노동자인데, 창업해야하는데 ㅆㅇㅆ(124.216) 07.11 31 0
2870897 챗gpt 이새끼 뭐냐 ㅇㅇ(211.235) 07.11 71 0
2870896 음기 충전 발명도둑잡기(118.216) 07.11 30 0
2870895 오늘의 발명 실마리: 레트로 게임기용 gmenu2x DOS용으로 포팅 [1] 발명도둑잡기(118.216) 07.11 28 0
2870894 리눅스를 윈도우95 처럼 꾸미 발명도둑잡기(118.216) 07.10 49 0
2870893 요즘 어셈다루다가 [2] 루도그담당(211.235) 07.10 71 0
2870892 술먹으면 보지 냄새 풍기면서 앵기는년들 왤케 많냐 [2] hrin(118.235) 07.10 80 0
2870891 네이버 오픈소스 가이드 발명도둑잡기(118.216) 07.10 67 0
2870890 직장 동료들 너무 무능하다.. [4] ㅇㅇ(121.162) 07.10 98 0
2870889 리버싱 접기로 함 [5] 루도그담당(58.239) 07.10 79 0
2870888 오늘도 책 한권 끝냈군. 내 조테로 문서 풍성해짐 [1] ㅆㅇㅆ(124.216) 07.10 41 0
2870887 매일매일이 한번이라도 실패하면 적자라서 힘들다 ㅆㅇㅆ(124.216) 07.10 45 0
2870886 아일릿 신보 들어본 결과 발명도둑잡기(118.216) 07.10 33 0
2870885 아스카야 프롬프트 엔지니어링 문서 추천해줌 [2] ㅆㅇㅆ(124.216) 07.10 43 2
2870884 [IT산업] Compile 될 수 있는 AI 와 AI 의 신뢰도.. [1] +abcd3421갤로그로 이동합니다. 07.10 45 0
2870883 디씨인싸이드 에러 발명도둑잡기(118.216) 07.10 25 0
2870882 3617번이라고한다 헬마스터갤로그로 이동합니다. 07.10 35 0
2870881 켄트백 그래도 페북 7년있었잖아. ㅆㅇㅆ(124.216) 07.10 34 0
2870880 나님 유튜브 시청하며 ai 공부중 [9] 아스카영원히사랑해갤로그로 이동합니다. 07.10 62 0
2870879 근데 지피티 쓰면 코드 못쓰게 되는게 당연한 수순임. 이건 어쩔수가 없어 [7] ㅆㅇㅆ(124.216) 07.10 108 1
2870878 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ [1] ♥냥덩이♥갤로그로 이동합니다. 07.10 45 0
2870877 아 이제 지피티 없이 개발 못하겠네.. [2] ㅇㅇ(175.197) 07.10 59 1
2870876 마갤은 취향 안맞아서 정갤에서 정신병 뽐내는게 좋아 [2] ㅆㅇㅆ(124.216) 07.10 36 0
2870875 다 깃허브갤로 이사갔네 [2] 프갤러(106.101) 07.10 69 0
2870874 2주동안 하던 문명 한판 끝냈습니다 [4] 아스카영원히사랑해갤로그로 이동합니다. 07.10 46 1
2870873 근데 보통 Cpp17 핵심 컨셉이 스트럭쳐 바인딩이라 [2] ㅆㅇㅆ(124.216) 07.10 46 0
2870871 근데 대부분 11기준 서술이라 11기준이면 여전히 유효하긴함 [3] ㅆㅇㅆ(124.216) 07.10 56 0
2870870 c++책 다 버렸음 [4] ㅇㅇ(122.36) 07.10 107 0
2870868 sism도 자유롭게 휴가를 쓰고싶어요 [6] 개멍청한유라갤로그로 이동합니다. 07.10 52 0
2870866 로그는 누가만들었을까 [4] 개멍청한유라갤로그로 이동합니다. 07.10 73 0
2870864 내부고발자를 조심해야하는 이유.... ㅇㅇㅇㅇ(125.7) 07.10 29 0
2870863 애널 하루도 2재명 만큼 대한민국이 망해가는구낭.. ♥냥덩이♥갤로그로 이동합니다. 07.10 32 0
2870862 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 07.10 31 0
2870861 나님 다른 프밍갤 갈만한곳 ㅊㅊ 받음 [2] ♥냥덩이♥갤로그로 이동합니다. 07.10 68 0
2870860 163 [1] ♥냥덩이♥갤로그로 이동합니다. 07.10 41 0
뉴스 '전국노래자랑', 7/13(일) 충남 홍성군 편! 신흥 트롯황태자 김용빈 출격! 디시트렌드 07.11
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2