디시인사이드 갤러리

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

갤러리 본문 영역

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

마갤러(221.158) 2024.04.28 16:52:07
조회 115 추천 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/13 - -
AD 나혼렙 어라이즈 그랜드 론칭! 운영자 24/05/09 - -
공지 마인크래프트 갤러리 이용 안내 [65/1] 운영자 15.03.04 29400 72
87574 띵물의숲 마갤러(59.6) 02:07 13 0
87573 악어랑하는컨텐츠 마갤러(59.6) 02:06 17 0
87572 파산게임 유리 만지작좌 언급한 영상 [2] ㅇㅇ(110.9) 02:05 18 0
87571 바이옴 모드 관련 질문 마갤러(123.100) 02:02 25 0
87570 새 트윗 알렉스말랑뷰갤로그로 이동합니다. 02:00 30 0
87569 마붕아 잘자 ㅇㅇ(175.205) 01:55 42 0
87568 네오 포지로 모드 만들기 1 랜드렌드(110.9) 01:51 37 0
87567 마크 죽어도 안하는 스머들은 왜 그런거임? [3] 마갤러(123.213) 01:50 81 0
87566 근데 진자 이번 마크는 한번도 안챙겨보게되네 마갤러(180.231) 01:50 42 0
87565 아니 장지수님 ㅋㅋㅋㅋ 왜 단타 안 키는거? 마갤러(59.6) 01:45 31 0
87564 디코한다고 마크 악놀 망한다고 한게 젤 웃기네ㅋㅋㅋ [2] 마갤러(14.42) 01:41 81 0
87563 DEAR MY X (나의 X에게) 마갤러(59.6) 01:40 44 2
87562 다른건몰라도 마갤러(175.195) 01:39 30 0
87561 질문) 형들 마크 처음 하려고 하는데 어떤거 사야됨요? [1] 히타9갤로그로 이동합니다. 01:36 24 0
87560 ??도합사글 어디갔죠 MsoDipper(211.223) 01:32 21 0
87559 서넹 키보드 마갤러(49.170) 01:22 32 0
87558 오늘 할것 MsoDipper(211.223) 01:20 31 0
87557 악놀2 히든 힌트 마갤러(14.33) 01:19 40 0
87556 상가2개 합치는거 가격얼마지불해야하는지 아시는분!? 민트앵무새(175.205) 01:18 31 0
87555 플러리 마크해도 500 젤다해도 500 걍 무조건 500임 [1] ㅇㅇ(14.33) 01:15 78 1
87554 물불풀흑백은 꼭 나왔으면 좋겠다 [1] ㅇㅇ(220.123) 01:05 33 0
87553 지듣노 ㅇㅇ(220.123) 01:03 41 0
87552 근데 남멋서버도 마크라 난 거를거 같다 마갤러(211.47) 01:00 47 0
87551 물불퓰 흑백.. 나 기대해도 되는거지? ㅇㅇ(175.113) 00:56 28 0
87550 내일이 월요일이라는 걸 깨달은 모습 마갤러(220.123) 00:56 25 0
87549 여러분, 절대 포기하지 마세요. ㅇㅇ(175.113) 00:54 105 0
87548 뭣? 이 패턴을? 마갤러(211.47) 00:53 41 0
87547 히든 해적왕 근들근들 [1] 마갤러(115.22) 00:52 37 0
87546 대규모콘텐츠 단타 정주행 하려고 하는데 [3] 마갤러(220.123) 00:51 31 0
87545 오늘의 추천 영상 [2] 마갤러(180.231) 00:50 31 0
87544 오늘도..크라임띵을 보며.. 마갤러(14.33) 00:50 26 0
87543 크루게이들이 우승한 대규모 뭐가 있음? [2] 마갤러(220.121) 00:49 46 0
87542 기관별 배경화면 만들기 2탄! (2개) [6] OkidOKkIyO(14.39) 00:48 66 1
87541 매일 글쓰기 1일차 재인(59.6) 00:47 36 0
87540 오랜만에 단타 보는데 마갤러(220.123) 00:46 29 0
87539 야생서버하자 ㅇㅇ(223.39) 00:39 22 0
87538 RTX Remix는 마인크래프트에서도 실행이 가능할까 도미노한국인(175.198) 00:37 51 0
87537 오늘은 ㄹㅇ 역대급이었다 ㅋㅋㅋ [2] 마갤러(59.6) 00:37 93 0
87536 교수님들 비하인드 토크쇼 ㅇㅇ(106.255) 00:35 47 0
87535 올해 신년계획 컨텐츠 [2] 마갤러(110.9) 00:35 31 0
87534 히든 더 줘어ㅓ 오늘 너무 쉽게풀림 [2] ㅇㅇ(59.4) 00:29 48 0
87533 악놀2 [2] 마갤러(211.47) 00:11 53 0
87532 유언 [3] LicaChan(49.170) 00:10 78 0
87531 히든 뇌피셜 근들근들 ㅇㅇ(211.225) 00:05 46 0
87530 닉네임 변경할 줄 아는 게이 있음?ㅠㅠ 마갤러(121.144) 00:03 28 0
87529 오늘 내 생일... [5] bearland040(14.42) 00:02 74 1
87528 다시 볼만한 일일컨텐츠 뭐가 있을까 [5] ㅇㅇ(183.107) 00:01 30 0
87527 이짤을보면 마크 닭소리가 들립니다 [3] 마갤러(14.33) 05.12 82 0
87526 게이들~ 이 영상이 벌써 9년 전이래 [4] 마갤러(175.194) 05.12 38 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2