전체 글669 자바 디자인 패턴: 데코레이터 패턴, 콤포지트 패턴, 어댑터 패턴 1. 데코레이터 패턴 Decorator Pattern 데코레이터 패턴이란? - 장식과 실제 내용물을 동일시 -> 이질적인 객체들을 동일한 방식으로 핸들링할수 있다. - 객체에 동적으로 책임을 추가한다. - 자바 I/O stream에서도 사용한다. 기존 클래스에 +알파를 할때, 상속을 생각하기 쉬운데, Is-A 관계가 아니라 결합도를 보다 낮추면서도 유연하게 하는 방식 의도와 동기 - 상속을 사용하지 않고 기능의 유연한 확장이 가능한 패턴 -> 복잡한 hierarchy를 회피한다. - 객체에 동적으로 새로운 서비스를 추가 할 수 있음 - 전체가 아닌 개별적인 객체에 새로운 기능을 추가 할 수 있음 예를 들어서 어떤 클래스에는 이것이 필요하고 어떤 클래스에는 이것이 필요 없을 때 상속을 사용하면 필요 없.. 2023. 7. 5. 자바 디자인 패턴: 템플릿 메서드, 팩토리 메서드, 전략 패턴, 브릿지 패턴 1. 템플릿 메서드 패턴 Template Method 템플릿 메서드 패턴이란? - 상위 클래스에서는 전반적인 흐름을 정의한다. - 흐름을 정하는 것이 핵심이다. -> 알고리즘 - 하위 클래스에서는 상위에서 정의한 메서드를 구현한다. -> 하위 클래스에게 위임한다. 의도와 동기 - 오퍼레이션의 알고리즘 골격을 정의하고, 서브 클래스가 구체화한다. - 추상화된 함수를 통해 알고리즘의 일부 단계를 정의하여 템플릿 메서드의 처리 순서를 변하지 않게 한다. 클래스 다이어그램 템플릿 메서드를 프레임워크에서 많이 사용한다. 참고로 라이브러리와 프레임워크의 핵심적인 차이는 제어권의 여부이다. 프레임워크 -> 제어권을 프레임워크가 갖는다. 템플릿 메서드 -> 시나리오, 알고리즘을 정의함으로써 이미 정의된 것을 구현만 .. 2023. 7. 5. 자바 디자인 패턴: 인스턴스 생성 패턴 - 싱글톤, 프로토타입, 빌더, 추상 팩토리 1. 싱글톤 패턴 Singleton Pattern 싱글톤이란? - 자바에서는 객체는 항상 new를 통해 생성한다. - 매번 new를 하여 새로운 인스턴스를 생성하는 것이 아니라, 시스템 내에 하나의 인스턴스를 갖는 것 -> 단 하나임을 보장 ! -> C, C++에서는 전역 변수로 사용하는데 자바에서는 그 개념이 아니라 (global 변수가 없음) 하나의 인스턴스를 갖고 공유하도록 하는 의미임 의도와 동기 - 왜 하나여야 할까? 여러개가 있으면 문제가 되는 것을 하나로 보장하는 것 - 여러 번 생성되어서 각각의 값을 가질 필요가 없는 것이다. > 예를 들어 JDBC Connection Pool -> 단 하나만 필요하다. - 클래스의 인스턴스가 하나만 생성되고, 이후에는 해당 인스턴스를 공유하여 사용할 수 .. 2023. 7. 5. 디자인 패턴을 배워야 하는 이유, 객체지향 설계와 SOLID, 클래스 다이어그램 디자인 패턴에 대해 알아보자. 디자인 패턴이 생겨난 이유 - 소프트웨어를 재사용할 수 있고, 유연하고 확장성 있고, 유지 보수 만들기는 어려운 일이다. - 실제 개발보다 유지 보수하는데 더많은 시간과 노력이 들어간다. - 아무리 뛰어난 사람이 만들어도 수정은 반드시 필요하게 된다! 일반적 사용! - 좋은 설계에 대한 제안 - 커뮤니케이션에.. 2023. 7. 5. 백준 10816 숫자 카드 2 (HashMap과 BinarySearch를 이용한 풀이) 백준 10816 숫자 카드 2 (JAVA 자바 풀이) 📌 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오. ⚔ 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 몇 개 가지고 있는 숫자 카드인지 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있.. 2023. 7. 4. 이전 1 ··· 48 49 50 51 52 53 54 ··· 134 다음