Design Pattern : 이터레이터(Iterator) 패턴
이터레이터(Iterator) 패턴의 차이점 이터레이터 패턴은 집합 객체 내부 구조를 노출시키지 않고 순회하는 방법을 제공하는 패턴입니다. 다이어그램 Iterator : 집합체의 요소들을 순서대로 검색하기 위한 인터페이스 ConcreteIterator : Iterator 인터페이스를 구현 Aggregate : 여러 요소들로 이루어져...
이터레이터(Iterator) 패턴의 차이점 이터레이터 패턴은 집합 객체 내부 구조를 노출시키지 않고 순회하는 방법을 제공하는 패턴입니다. 다이어그램 Iterator : 집합체의 요소들을 순서대로 검색하기 위한 인터페이스 ConcreteIterator : Iterator 인터페이스를 구현 Aggregate : 여러 요소들로 이루어져...
7장. 오류 처리 언제나 사용자는 우리의 예상과 다르게 행동하기 때문에 적절한 오류 처리는 매우 중요합니다. 다만, 오류 처리 코드로 인해 프로그램 논리를 이해하기 어려워진다면 깨끗한 코드를 부르기 어렵습니다. 따라서 이 장에서는 깨끗한 코드를 위해 오류를 처리하는 기법과 고려 사항에 대해 나와있습니다. 7-1. 오류 코드보다 예외를 사용하라 오...
6장. 객체와 자료구조 6장에서는 객체와 자료구조에 제대로 구분하고 활용하는 방법에 대해 나와있습니다. 6-1. 자료 추상화 자료를 세세하게 공개하기 보다는 추상적인 개념으로 표현하는 것이 좋습니다. // 6-1 코드 구체적인 Point Class public class Point { public double x; public double ...
프록시, 데코레이터, 책임 연쇄 패턴의 차이점 책임 연쇄 패턴(Chain of Responsibility)은 요청을 보내는 쪽과 요청을 처리하는 쪽을 분리하는 패턴입니다. 데코레이터 패턴과 프록시 패턴이 책임 연쇄 패턴과 매우 유사한데, 기존 스터디에서 데코레이터 패턴과 설계 방법이 매우 유사하기 때문에 따로 예시는 들지 않고 세 개의 패턴에 대한...
4장. 주석 주석으로 코드를 표현하는 방식은 좋지 않다고 합니다. 그 이유는 코드는 계속적으로 변화하고 진화하게 되는데 반해, 주석은 코드 작성자가 실수로 업데이트를 하지 못할 가능성이 충분히 존재합니다. 오히려 코드와 다른 부정확한 주석이 원래 코드의 의도를 헤치는 경우도 발생하기 때문에 주석으로 코드를 설명하는 것보다는 주석없이 코드 자체로 정확...
3장. 함수 어떤 프로그램이든 가장 기본적인 단위가 함수입니다. 때문에 함수를 잘 만드는 법을 아는 게 좋습니다. 3-1. 작게 만들어라! 함수를 만드는 첫 번째 규칙은 무조건 작게입니다. 큰 함수를 작게 쪼개면서 적절한 이름을 붙여주면 코드를 이해하기 쉬워집니다. 블록과 들여쓰기 if문, else문, while문 등에 들어가는 블록은 한 줄...
JVM과 연관지어 보는 스태틱 블록(Static Block)과 인스턴스 블록(Instance Block) Java로 디자인 패턴 스터디 중 Class 안에 static { }와 { }로만 이루어진 처음보는 블록이 있어 이 글을 포스팅하게 되었습니다. JVM으로 자바 프로그램 실행하는 과정과 연관되어 있기 때문에 아래의 JVM 글을 먼저 보고 오시면...
final Java 디자인 패턴 스터디 중 final 키워드 활용법을 찾아보다가 정리가 필요할 거 같아, 포스팅을 시작하였습니다. 1. 개요 final 키워드를 떠올릴 때면 그냥 상수로만 생각할 수도 있지만, final을 클래스, 메서드, 변수에 선언하면 조금씩 할 수 있는 부분들이 제안되기 때문에 다양한 방식의 final 활용법을 알아야할 필요...
플라이웨이트(Flyweight) 패턴 플라이웨이트는 복싱에서의 플라이웨이트 체급(제일 가벼운 체급)에서 이름을 가져왔습니다. 플라이웨이트 패턴은 많은 인스턴스를 생성하는 애플리케이션에서 사용할 수 있는 패턴 중 하나입니다. 1. 정의 플라이웨이트 패턴은 자주 변하는 객체와 자주 변하지 않는 객체를 분리해서 자주 변하지 않는 객체를 재사용하므로써 ...
Clean Code : 추천사 및 1장(깨끗한 코드) 다니는 회사의 인턴 부터 시작해 정규직이 되고 난 후, 신규 프로젝트에 투입되었는데, 다른 사람의 코드를 분석하고 활용해야 하는 경우가 많았습니다. 예전부터 확장성 있고 효율적인 좋은 코드에 대해 관심이 있었지만, 이번 신규 프로젝트를 통해 좋은 코드의 중요성에 대해 한 번 더 느끼게 되어 공채 ...