디시인사이드 갤러리

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

갤러리 본문 영역

[Java] 디자인 패턴: 행동-널 객체(Null Object)

마갤러(221.158) 2024.04.28 16:52:07
조회 117 추천 0 댓글 0

[!] 디자인 패턴 소개:

1. 소개

널 객체 패턴은 아무것도 안할 필요가 있을 때 아무것도 안하는 구현체를 만드는 디자인 패턴임.

2. 기본 구조

publicinterface Ability {voidexecute();}
publicclass AbilityImpl implements Ability { @Override publicvoidexecute(){...}}
publicclass NotHasAbility implements Ability {// Null Object @Override publicvoidexecute(){// do nothing}}
@AllArgsConstructor publicclass Context {private Ability ability;publicvoidactivateAbility(){ ability.execute();}}
publicclass Application {publicstaticvoidmain(String[] args){ Context context =new Context(new AbilityImpl()); context.activateAbility(); Context context2 =new Context(new NotHasAbility()); context2.activateAbility()// 능력이 없으므로 아무것도 안 하게 됨.}}

여기서 NotHasAbility가 Null Object의 예시임.

이렇게 능력이 없어서 아무것도 못해야 하지만 반드시 구현체를 넣어야 할 때 만들어지는 것이 Null Object 임.

3. 장점 및 단점

아무것도 안하는 동작을 구현할 수 있음.

단지 null check를 회피하기 위해 이 패턴을 구현하는 것은 적합하지 않음.

무언가를 반드시 해야 하는 동작인데 Null Object를 구현하면 오류로 이어질 수 있음.

약간의 오버헤드가 발생할 수 있음.

4. 참고 자료

https://en.wikipedia.org/wiki/Null_object_pattern

https://java-design-patterns.com/patterns/null-object/

작성/수정 일자:2024.04.28

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 어떤 상황이 닥쳐도 지갑 절대 안 열 것 같은 스타는? 운영자 24/05/20 - -
AD 희귀 정령 획득 기회! <아스달 연대기> 출석 이벤트 운영자 24/05/23 - -
공지 마인크래프트 갤러리 이용 안내 [66/1] 운영자 15.03.04 29750 72
90337 이거 왜 자바로 안뜨고 이렇게 뜨냐 마갤러(121.157) 22:47 3 0
90336 현 기관위장(GREY_CIT)님에 대해서 폭로하려 합니다. [3] 도그(112.221) 22:46 20 0
90335 너무 오랜만이노 ㅇㅇ(121.152) 22:43 12 0
90334 Chocolate Factory V 마갤러(115.22) 22:41 21 0
90333 재밌노 ㅋㅋ 마갤러(222.108) 22:37 24 0
90332 스블하는 게이? ㅇㅇ(121.142) 22:36 22 0
90331 청키 처음 써봄 ㅇㅇ(221.155) 22:32 28 0
90330 제가 원하는 조건대로 스킨 만들어주실분 minlminl(110.10) 22:26 35 0
90329 다들 밸런스밸런스하는데 마갤러(49.142) 22:21 32 0
90328 구리던전 마갤러(175.113) 22:11 32 0
90327 마크하려고 모드 200개 깔았는데 하기 싫어짐 ㅇㅇ(121.135) 22:10 45 0
90326 마크 이것저것 뭔가 많이 추가됐네 마갤러(14.51) 22:10 50 0
90325 와 악어 말 진짜 잘하네 [8] ㅇㅇ(14.45) 22:02 57 0
90324 마크 해저유적은 원래 잘 안가? 마갤러(119.206) 22:01 39 0
90323 지금 이 생각 하고 있으면 개추 박아라 진짜 ㅋㅋ [2] 월애임(218.158) 22:01 80 0
90322 채팅을 볼때마다 느끼는거지만 [1] ㅇㅇ(183.105) 21:53 42 0
90321 마크 솔플은 오래 못가냐 [2] 마갤러(121.144) 21:49 62 0
90320 ㅅㅅㅅ들 다 분탕같은데 밴은 안되나.. [3] 척살이(220.87) 21:44 57 0
90318 버킷 서버에 리소스팩 적용하는 방법 질문 ㅇㅇ(221.144) 21:39 46 0
90317 핑형 ㅋㅋㅋㅋ [20] ㅇㅇ(222.103) 21:38 61 0
90316 양띵TV 재방 컨텐츠 추천받음 마갤러(112.152) 21:31 29 0
90315 점적석동굴 [1] 유우갤로그로 이동합니다. 21:28 28 0
90314 핑맨 오늘안에 안오면 [2] 마갤러(119.199) 21:22 95 0
90313 이번주 금요일에는... [1] ㅇㅇ(121.140) 21:13 59 0
90312 ★[혜성]★에서 맴버를 모집함~! 마갤러(110.11) 21:11 76 0
90311 [1.20.2] 술래가 바뀌는 술래잡기 [1] 마갤러(203.81) 21:09 114 0
90310 띵>< 마갤러(222.108) 21:04 28 0
90309 1.20.4 데이터팩 추천해주셈 마갤러(221.144) 21:00 33 0
90308 이사 했는데 마갤러(124.53) 20:57 29 0
90306 미드차이 [1] ㅇㅇ(221.144) 20:55 98 4
90305 커스텀 npc 질문 마갤러(119.203) 20:50 36 0
90304 인챈트 효과 어떻게 바꾸냐? ㅇㅇ(61.43) 20:50 31 0
90303 전서래검 하지만...? 마갤러(183.105) 20:48 110 0
90302 마크 이거 뭐 사면 됨? [3] 마갤러(61.253) 20:47 73 0
90301 .. Sangchuu(218.144) 20:41 39 0
90300 혹시 이 모드 아는 사람 있음? 마갤러(180.66) 20:40 27 0
90299 모드 질문 [1] 갓요태(121.175) 20:38 35 0
90298 반야생하면서 힐링할 성인 게이들 구함! [4] ㅇㅇ(211.225) 20:16 110 0
90297 유부녀인 여주가 이사온 옆집 남자한테 덮쳐지고 함락당해버리는 개꼴리는 망 ㅇㅇ(175.206) 20:15 59 0
90296 철 문을 지나기만 하면 됩니다 ㅇㅇ(210.219) 20:12 64 0
90295 1년 뒤에 마크 할려고 미리 사놨다. ㅇㅇ(118.220) 20:10 34 0
90294 일단 집의 기본베이스 마갤러(218.155) 20:02 49 0
90293 마크로 rpg할바엔 그냥 테라리아를 하는게 낫지않냐? [1] ㅇㅇ(175.118) 19:58 64 2
90292 -저격수 마갤러(220.89) 19:57 61 3
90291 투기장 마갤러(222.108) 19:44 43 0
90290 pc be와 모바일 be의 연동방법 [2] 마갤러(220.127) 19:44 48 0
90289 투기장 몇 시간 정도 할까? [2] 마갤러(58.230) 19:38 54 0
90288 야생서버하자 ㅇㅇ(223.39) 19:34 84 1
90287 님들 기프트 카드로 마크사면 할인 어케됨? 마갤러(59.21) 19:31 24 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2