템플릿 메서드 패턴 템플릿 메서드 패턴이란? 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴 쉽게 말하면 전체적인 흐름은 부모 클래스에서 정해져 있고, 기능의 일부를 protected abstract method로 작성한 뒤에 자식클래스에서 해당 method를 구현 후 사용하도록 하는 디자인 패턴이다. 예제소스 public abstract Class Motor { private Door door; private MotorStatus motorStatus; public Motor(Door door) { this.door = door; motorStatus = MotorStatus.STOPPED; } public Mo..
포켓몬 문제 설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) 폰켓몬을 ..
로또의 최고 순위와 최저 순위 문제 설명 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 순위당첨 내용 16개 번호가 모두 일치25개 번호가 일치34개 번호가 일치43개 번호가 일치52개 번호가 일치6(낙첨)그 외 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가44, 1, 0, 0, 31 25라..
Builder Pattern 이란? 복잡한 단계를 거쳐야 생성되는 객체의 구현을 서브 클래스에게 넘겨주는 패턴 구현 public class Member { private String name; private String email; private String gender; private int age; public String getName() { return name; } public String getEmail() { return email; } public String getGender() { return gender; } public int getAge() { return age; } // Member의 서브 클래스 Builder public static class Builder { // 필수 인..
의도 클래스를 생성하는 인스턴스가 오직 하나여야하며, 인스턴스 접근 혹은 생성 역시 한가지의 방식으로 제공 활용 클래스 인스턴스가 오직 하나여야 함을 보장하는 곳 모든 클라이언트가 하나의 인스턴스만 사용 해야하는 경우 코드 구현방법 private 생성자 private static 클래스 변수 public static getInstance() method 구현 지연 생성 public class SingletonTest { // private 생성자 // 기본 생성자 접근제어자를 private로 변경하여 외부생성 막음 private SingletonTest() {} // private static 클래스 변수 private static SingletonTest singletonTest = null; // p..
- Total
- Today
- Yesterday
- JPA
- javascript
- 맥북 키보드 딜레이
- 맥 포트 죽이기
- ES6
- 팀즈
- Design Pattern
- 코테
- 디자인패턴
- java
- effetive java
- 템플릿 메서드 패턴
- http header
- http
- Vue.js
- 코딩테스트
- 포트충돌
- vue
- SOLID원칙
- Backend
- Spring
- frontend
- 맥 팀즈 캐시 삭제
- HTTP body
- ORM
- 알고리즘
- 팀즈 느려짐
- 이펙티브 자바
- 프로그래머스
- Mackbook
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |