본문 바로가기

java5

디자인 패턴 - 전략 패턴 (Strategy Pattern) 전략 패턴 (Strategy Pattern) - 행위 패턴 (Behavioral Pattern) 중 하나 => 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴 => 1. 한 객체가 혼자 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배하는지에 대해서 중점을 둔다. => 2. 객체 사이의 결합도를 최소화 하는 것에 중점을 둔다. 1. 객체들이 할 수 있는 행위 각각에 대해 전략 클래스 생성 2. 유사한 행위들을 캡슐화 하는 인터페이스 정의 3. 객체의 행위를 동적으로 바꾸고 싶은 경우, 직접 행위를 수정하지 않고 전략을 바꿔주므로써 행위를 유연하게 확장하는 방법 인터페이스 (MovableStrategy) 아래 예시에서 운송 수단을 정해주는 전략 클래스들을 캡슐화 하기 위한 인터페이스 publ.. 2020. 5. 31.
디자인 패턴 - 추상 팩토리 패턴 ( Abstract Factory Pattern ) 추상 팩토리 패턴 (Abstract Factory Pattern) - 생성 패턴 (Creational Pattern) 중 하나 => 인스턴스를 만드는 절차를 추상화 => 객체를 생성, 합성하는 방법이나 객체의 표현 방법을 시스템과 분리해줍니다. => 무엇이 생성되고, 누가 이것을 생성하는지, 어떻게 생성되는지, 언제 생성되는지 결정하는 데 있어서 유연성을 높일 수 있습니다. - 팩토리 클래스에서 서브 클래스를 생성할 때 if-else 문을 쓰지 않아요. => 팩토리 패턴의 조건문으로부터 벗어납니다 - 구현보다 인터페이스를 위한 코드 접근법을 제공 - 서브 클래스를 확장하기 쉽게 할 수 있어요. Super Class (Computer) public abstract class Computer { public.. 2020. 5. 30.
디자인 패턴 - 팩토리 메소드 패턴 (Factory Method Pattern) 팩토리 패턴 (Factory Pattern) - 생성 패턴 (Creational Pattern) 중 하나 => 인스턴스를 만드는 절차를 추상화 => 객체를 생성, 합성하는 방법이나 객체의 표현 방법을 시스템과 분리해줍니다. => 무엇이 생성되고, 누가 이것을 생성하는지, 어떻게 생성되는지, 언제 생성되는지 결정하는 데 있어서 유연성을 높일 수 있습니다. - 객체 생성 처리를 서브 클래스로 분리하여 처리 => 캡슐화 - 클래스의 인스턴스를 만드는 시점을 서브 클래스로 미뤄요. - 추상화 된 것에 의존하도록, 구상 클래스에 의존하지 않도록 합니다. - 서로 간의 종속성을 낮추고, 결합도를 느슨하게 하며, 확장을 쉽게 합니다. => 예를 들어, PC 클래스에 대해 수정이 일어나더라도, 클라이언트는 알 수 없기.. 2020. 5. 30.
디자인 패턴 - 싱글턴 패턴 (Singleton Pattern) 싱글턴 패턴 (Singleton Pattern) - 생성 패턴 (Creational Pattern) 중 하나 => 인스턴스를 만드는 절차를 추상화 => 객체를 생성, 합성하는 방법이나 객체의 표현 방법을 시스템과 분리해줍니다. => 무엇이 생성되고, 누가 이것을 생성하는지, 어떻게 생성되는지, 언제 생성되는지 결정하는 데 있어서 유연성을 높일 수 있습니다. // 장점 // - 한 번의 new 생성으로 인스턴스를 사용하기 때문에 메모리 낭비 방지 - 싱글톤 패턴으로 만들어진 클래스의 인스턴스는 전역 인스턴스(static instance)이기 때문에, 다른 클래스의 인스턴스들이 데이터를 공유하기 쉬움 - Android App의 경우, 각 액티비티나 클래스 별로 주요 클래스들을 일일이 전달하기가 번거롭기 때문.. 2020. 5. 30.
프로그래머스 - 튜플 (Java풀이) 출처 : 프로그래머스 - 2019 카카오 개발자 겨울 인턴십 코딩테스트 문제 [ 문제 설명 ] 셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이라고 하며, 다음과 같이 표현할 수 있습니다. (a1, a2, a3, ..., an) 튜플은 다음과 같은 성질을 가지고 있습니다. 중복된 원소가 있을 수 있습니다. ex : (2, 3, 1, 2) 원소에 정해진 순서가 있으며, 원소의 순서가 다르면 서로 다른 튜플입니다. ex : (1, 2, 3) ≠ (1, 3, 2) 튜플의 원소 개수는 유한합니다. 원소의 개수가 n개이고, 중복되는 원소가 없는 튜플 (a1, a2, a3, ..., an)이 주어질 때(단, .. 2020. 5. 4.