전체 글 334

[디자인 패턴] 22장 템플릿 메서드 패턴

공부하기 위해서 요약정리해놓은 것입니다.. 정확하고 꼼꼼한 자료는 쉽게 배워 바로 써먹는 디자인 패턴을 확인하시고 코드는 github.com/infohojin/patterns 을 참고해 주세요. 템플릿 메서드 패턴은 메서드를 이용해 각 단계를 템플릿 구조화하고 행동을 구분합니다. 프로그램의 구조 프로그램의 코드는 구조를 갖고 있습니다. 시작을 기준으로 하여 순차적으로 코드를 읽고 해석합니다. 프로그램이 순차적으로 실행된다는 의미는 단계적으로 코드를 따라간다는 것입니다. 모든 행동에는 순서가 있으며, 프로그램은 이러한 동작을 분석해서 순차적으로 연결합니다. 인간은 어떤 행동을 추상화하고 이를 이해합니다. 또한 추상화된 각 단계의 동작을 무의식적으로 학습된 형태로 반복합니다. 프로그래밍은 복잡한 동작을 단계..

[디자인 패턴]21장 메멘토 패턴

공부하기 위해서 요약정리해놓은 것입니다.. 정확하고 꼼꼼한 자료는 쉽게 배워 바로 써먹는 디자인 패턴을 확인하시고 코드는 github.com/infohojin/patterns 을 참고해 주세요. 메멘토 패턴은 객체의 상태를 저장하여 이전 상태로 복구하는 패턴입니다. 상태 저장 객체는 고유한 상태를 갖고 있으며 객체의 상태는 프로그램 실행 중에 다른 객체에 의해 끊임없이 값이 변경됩니다. 객체는 프로퍼티와 메서드로 구성되고 프로퍼티는 객체의 상태 형태로 값을 가집니다. 그리고 메서드는 객체의 행위로 내부 상태를 변경하고, 상태값에 따라 동작을 수행합니다.

[디자인 패턴]20장 상태패턴

공부하기 위해서 요약정리해놓은 것입니다.. 정확하고 꼼꼼한 자료는 쉽게 배워 바로 써먹는 디자인 패턴을 확인하시고 코드는 github.com/infohojin/patterns 을 참고해 주세요. 상태 패턴은 조건에 따른 별개의 동작을 제어문으로 사용하지 않습니다. 그 대신 객체를 캡슐화하여 독립된 동작으로 구분하는 패턴입니다. 상태 패턴은 상태 표현 객체라고 부르기도 합니다. 상태란 프로그램은 조건에 따라 분기해 다양한 동작을 처리합니다. 제어문은 조건의 상태 값을 참과 거짓으로 판단하여 상태를 처리합니다. 제어문의 조건은 값을 이용해 참과 거짓으로 상태를 구분하고 동작을 제어하는 것입니다. 참 & 거짓 동작으로 나뉘며, 이처럼 2가지 형태로 값의 상태를 구별하는 것을 플래그라고도 합니다. 주문 상태를 ..

[디자인 패턴]19장 중재자 패턴

공부하기 위해서 요약정리해놓은 것입니다.. 정확하고 꼼꼼한 자료는 쉽게 배워 바로 써먹는 디자인 패턴을 확인하시고 코드는 github.com/infohojin/patterns 을 참고해 주세요. 중재자 패턴은 분산된 다수의 객체 역활을 조정할 때 주로 사용됩니다. 중재 중재는 어떤 문제를 해결하거나 조정을 돕는 것을 말합니다. 객체지향에서는 분산된 객체의 행동을 중재합니다. 객체지향의 특징은 모든 행동을 하나의 객체에 집중하여 처리하지 않는다는 것입니다. 행동은 작은 단위로 분리하고, 목적 동작을 수행하기 위해 분리된 행동을 연결합니다. 객체지향은 하나의 커다란 행동을 작은 단위의 객체로 분산합니다. 이렇게 객체의 역활을 보다 작은 객체로 분할하는 이유는 동작을 재사용하기 위해서입니다. 객체의 행동을 작..

[디자인패턴]18장 감시자 패턴

공부하기 위해서 요약정리해놓은 것입니다.. 정확하고 꼼꼼한 자료는 쉽게 배워 바로 써먹는 디자인 패턴을 확인하시고 코드는 github.com/infohojin/patterns 을 참고해 주세요. 감시자 패턴은 모던 언어에서 많이 응용되는 대표적인 패턴입니다. 몇몇 프로그래밍 언어는 자체적으로 감시자 패턴의 기본 구현체를 만들어 제공하기도 합니다. 감시자 프로그램 동작은 하나의 로직을 실행한 후 다음 로직을 실행하는 것처럼 순차적으로 이뤄집니다. 코드의 로직은 독립적이고 자체적인 동작입니다. 또는 외부의 값에 따라 실행되는 동작을 다르게 할 수도 있습니다. 코드는 값을 확인하는 동작이 필요합니다. 다음은 반복문과 조건문을 이용한 감시코드입니다.

정올_1339 문자삼각형2(자바) /도형만들기1

시간&메모리 제한 문제 입력&출력 문제풀이 package com.jungol; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class jungol_1339 { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int N = Integer.parseInt(br.readLine(..

정올_1338 문자삼각형1(자바) / 도형만들기1

시간&메모리 제한 문제 입력&출력 문제풀이 package com.jungol; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class jungol_1338 { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int N = Integer.parseInt(br.readLine(..

정올_1314 문자사각형2(자바) / 도형만들기1

시간&메모리 제한 문제 입력&출력 문제풀이 package com.jungol; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class jungol_1314 { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int N = Integer.parseInt(br.readLine(..

정올_1307 문자사각형1(자바) / 도형만들기1

시간&메모리 제한 문제 입력&출력 문제풀이 package com.jungol; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class jungol_1307 { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int N = Integer.parseInt(br.readLine(..

정올_2046 숫자사각형4(자바)/도형만들기1

시간&메모리 제한 문제 입력&출력 문제풀이 package com.jungol; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class jungol_2046 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); StringBui..

정올_1304 숫자사각형3(자바) /도형만들기1

시간&메모리 제한 문제 입력 & 출력 package com.jungol; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class jungol_1304 { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int N = Integer.parseInt(br.readLine());..

정올_1856 숫자사각형2 (자바) /도형만들기1

시간&메모리 제한 문제 입력 & 출력 문제풀이 package com.jungol; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class jungol_1856 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); StringB..

정올_1303 숫자사각형1(자바) /도형만들기1

시간 & 메모리 제한 문제 입력&출력 문제 풀이 package com.jungol; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class jungol_1303 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); String..