본문 바로가기
반응형

JAVA14

SOLID SRP 단일 책임 원칙 같은 이유로 변하는 애들을 모아라. 다른 이유로 변하는 애들은 분리해라. 객체 지향에 대입해보면, 클래스에는 단 한 가지의 책임을 할당해야하고, 클래스를 변경하는 이유는 단 한 개여야 한다는 말이다. B를 변경하는 경우 X만 변경되고, C를 변경하는 경우 Y만 변경된다면 A의 X책임과 Y책임을 분리하자! OCP 개방 폐쇄 원칙 말은 제일 쉽다. 확장에는 열려있어야 하고, 변경에는 닫혀있어야 한다. 어떠한 기능을 변경하거나 확장하면서, 그 기능을 사용하는 기존 코드의 수정을 최소화한다는 것이다. 개방 폐쇄 원칙의 핵심은 변경이 예상되는 곳을 추상화하고 다형성을 이용하는 것이다 다운캐스팅(instance of), 비슷한 if-else 구문이 생성된다면 이 원칙이 지켜졌는지 확인해보자 .. 2021. 6. 28.
디자인 패턴 Singleton 프로그램 내에서 1번만 생성되는 객체 private 생성자 static 자기자신 pubic 으로 get하여 자기자신 객체 사용 인터페이스의 사용, lazy-loading 에 사용 멀티쓰레드에서 주의 필요 Strategy 모드(같은일) 변경 동작들을 모듈화(특정 인터페이스를 상속)하여, 실행될 모듈을 갈아끼고 실행 구현체 set 이후에 동작실행 State 상태 변경 상태들을 모듈화 하여, 실행시 각 모듈의 상태를 변경하며 실행 동작을 실행하면, set이 실행되며 상태(구현체)가 변경 Command 모드(다른일) 변경 위와 비슷 Adapter 인터페이스가 다른 객체끼리 같은 일을 할 수 있도록 어탭터를 공동 인터페이스로 구현, 다른일을 하고 있는 객체를 가지고, 변환 함수를 구현 어탭터에 .. 2021. 6. 28.
인코딩 변환 1. HTML에서 인코딩 변환 2. JAVA에서 인코딩 변환 ( UTF-8 -> EUC-KR) new String(src.getBytes("KSC5601"), "KSC5601") 2021. 4. 29.
스트림 filter, sorted, map, collect 와 같은 여러 빌딩 블록 연산을 연결해서 복잡한 데이터 처리 파이프라인을 만들 수 있습니다. 여러 연산을 파이프라인으로 연결해도 여전히 가독성과 명확성이 유지가 됩니다. filter 메서드의 결과는 sorted 메서드의 input으로, 다시 sorted의 결과는 map메서드의 input으로, map 메서드의 결과는 collect로 연결됩니다 고수준 빌딩 블록(high-level building block)으로 이루어져 있으므로 특정 스레딩 모델에 제한되지 않고 자유롭게 어떤 상황에서든 사용 List lowCaloriesDishNames = menu.stream() .filter(d-> d.getCalories() Optional을 Optional으로 평.. 2021. 2. 19.
728x90
반응형