디자인 패턴 중 전략 패턴의 예를 들어 이해하려고합니다!전략 패턴특정한 계열의 알고리즘들을 정의하고 각 알고리즘을 캡슐화하며이 알고리즘들을 해당 계열 안에서 상호 교체가 가능하게 만든다.(출처: 위키피디아)보통 상속보단 인터페이스를 활용하여 사용합니다.장점클라이언트 코드의 수정 없이 행위를 확장할 수 있습니다.(OCP, DIP 준수) -> 테스트 또한 확장된 코드만 하면 됩니다.단점클래스의 복잡성이 증가할 수 있습니다.오리 특징 출력 프로그램전략 패턴을 사용해서 오리의 특징을 출력하는 간단한 프로그램을 작성해 보았습니다.오리는 종류마다 나는 것(이하 fly)과 꽥꽥 소리를 내는(이하 quack) 특징을 다르게 갖고, 추후에 추가되거나 변경될 수 있습니다.1) 먼저 변경이 될 가능성이 있는 부분인 fly ..
@Builder스프링으로 Lombok을 사용하면 객체를 생성할 때, @Builder를 통해 객체를 생성하는 경우가 많습니다.생성자에 매개 변수가 많을 때, @Builder를 사용하면, 코드를 읽기가 훨씬 쉬워집니다.new 생성자를 통해 객체를 생성하면 User 객체에 필요한 파라미터가 무엇을 의미하는지 알아보기가 힙듭니다.빌더를 통해 객체를 생성하면, 파라미터로 무엇이 들어가는지 알아보기가 쉬워집니다.@Builderpublic User(String displayName, String password, String email) { this.displayName = displayName; this.password = password; this.email = email;} //new 생성..
스프링 컨테이너가 싱글톤 컨테이너의 역할을 하면서 일반적으로 스프링 컨테이너에 저장된 bean들을 싱글톤으로 관리합니다.물론, 설정에 따라 다를 순 있습니다.요청이 올 때마다 객체를 생성하는 것이 아니라 이미 만들어진 빈 하나를 공유해서 사용하는 것 입니다.이렇게 되면 불필요한 메모리 낭비를 방지할 수 있습니다. 하지만, 싱글톤 방식에서 주의할 점이 존재합니다.싱글톤 패턴이나, 싱글톤 컨테이너를 사용하는 경우, 인스턴스 하나를 공유하기 때문에 객체의 상태를 stateful하게 설계를 하면 안된다는 것 입니다. 즉,필드가 있어선 안 된다는 것을 의미합니다.만약 필드가 공유되게 된다면 심각한 오류가 발생할 수 있습니다.필드 공유 문제 상황Hello라는 클래스를 싱글톤 패턴으로 만들어 보았습니다.Hello..
- Total
- Today
- Yesterday
- 프로그래머스
- 기능개발
- jwt
- redis
- 항해99
- 대용량데이터
- 얕은복사
- 람다
- scheduler
- java
- 알고리즘 문제풀이
- springboot
- jpa
- leetcode
- 스트림
- redisson
- 빌더패턴
- 조회수
- 리트코드
- StringBuilder
- Quartz
- 문자열더하기
- final
- 전략 패턴
- StringBuffer
- 깊은복사
- 알고리즘
- 싱글톤패턴
- 디자인패턴
- 함수형 인터페이스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |