일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 이분탐색이란
- 운영체제
- 강화학습
- 점근적 표기법
- AVL트리
- HTTP
- spring
- 힙트리
- SpringSecurity
- 스케줄링
- heapq
- 백준 장학금
- 알고리즘
- 멀티프로세서
- 자료구조
- MSA
- 연결리스트
- 완전이진트리
- 백준장학금
- 연결리스트 종류
- 최소힙
- 프로세스
- jpa n+1 문제
- python
- JPA
- posix
- Kruskal
- JVM
- 엔티티 그래프
- 최대 힙
- Today
- Total
목록백엔드/아키텍처 & 패러다임 & 디자인 패턴 (4)
KKanging

음료 시스템요구사항음료를 주문하는 주문시스템을 생각해보자음료에는 HosueBlend 와 DarkRoast , Decaf , Esppresso 가 있다.구현객체 지향적인 설계로 공통된 멤버를 묶기 위해 Beverage라는 추상 클랫로 구현체들을 상속 받게 하였다.다음은 클라이언트 코드이며 Beverage 변수에 선택된 클래스의 객체를 주입하고 cost해주면 된다. Beverage beverage = new Espresso(); beverage.cost();추가 요구사항음료에 부가 메뉴를 추가하는 것도 구현해주세요!각 음료에 시럽을 추가할 수도 우유를 추가할 수도 있게 그리고 부가 메뉴를 추가하면 해당 재료마다 추가 비용이 발생하게 해주세요!구현?위와 동일한 방식으로 구현하였다.만약 Milk가 추가된 ..

센서 디스플레이 예제가정WeatherDataDisplay 종류이 세 가지 메서드는 각각 가장 최근의 온도, 습도, 그리고 기압 측정값을 반환한다. 우리는 이러한 변수들이 어떻게 설정되는지 신경 쓸 필요가 없으며, WeatherData 객체가 외부 장치인 WeatherStation으로부터 업데이트된 정보를 얻는 방법을 알고 있다.요구 사항이 화면들은 WeatherData가 새로운 측정값을 받을 때마다 업데이트되어야 한다.시스템은 확장 가능해야 한다일단 구현Copypublic class WeatherData { private CurrentConditionDisplay currentConditionDisplay; private StatisticsDisplay statisticsDisplay; private F..

문제 상황오리 문제가정모든 오리는 소리를 낼 수 있다(quack)모든 오리는 수영을 할 수 있다(swim)오리의 종류마다 외형만 다르다.(display)설명모든 오리는 quack 과 swim operation을 가지고 있기 때문에 추상 클래스로 quack 와 swim 을 가지게 하고 추상 메서드로 display 를 구현하게 하였다.추가 요구 사항(fly)추가 요구 사항오리는 날 수 있다.설명오리는 날 수 있기 때문에 fly 라는 operation 을 추가해야한다.다행이도 현재 MallardDuck 과 RedheadDuck은 fly 동작을 하므로 추상 클래스인 Duck 에 fly를 impl 하였다.에러 상황설명RubberDuck 추가 : 소리를 다른 오리와 다르게 냄, 날지 못함DecoyDuck 추가 : ..

자바 개발자가 AOP를 공부 해야하는 이유관점 지향 프로그래밍 기법이란핵심 기능과 부가 기능우리가 개발할 때를 생각해보자도메인 로직을 개발할 때 보면 항상 “도메인 로직만” 개발할 수 있을까?컴포넌트 로깅을 위해 모든 메서드에 로그를 찍는다거나DB와 트랜잭션을 연결하기 위해 트랜잭션 connection 을 한다던가 하는일련의 핵심기능을 위해 해야하거나 부가적인 필요 때문에 해야하는 부가기능 로직이 항상 들어가게 된다.핵심 기능 : 해당 객체가 제공하는 고유의 기능부가 기능 : 핵심 기능을 보조하기 위해 제공되는 기능 ( ex: 로그 추적 기능, 트랜잭션 기능 )이러한 부가 기능을 바로 횡단 관심사라고 한다.객체 지향 프로그래밍으로 어느 정도 SRP를 따르면서 클래스의 책임을 분리할 순 있어도 도메인 로직..