본문 바로가기

Java8

[Design Pattern] State Pattern [Design Pattern] State Pattern state pattern에 대하여 알아보고, java와 kotlin 예제를 봐보도록 하겠습니다. State Pattern이란?? State Pattern은 일련의 규칙에 따라 객체의 상태(State)를 변화시켜, 객체가 할 수 있는 행위를 바꾸는 패턴입니다. 상태에 따라 행동이 변화하는 객체엔 모두 적용할 수 있습니다. 특징 State Pattern은 객체의 특정 상태를 클래스로 선언하고, 클래스에서는 해당 상태에서 할 수 있는 행위들을 메서드로 정의합니다. 그리고 이러한 각 상태 클래스들을 인터페이스로 캡슐화하여, 클라이언트에서 인터페이스를 호출하는 방식을 말합니다. State Pattern with Java public interface Powe.. 2019. 10. 21.
[Design Pattern] Chain of Responsibility Pattern [Design Pattern] Chain of Responsibility Pattern Chain of Responsibility Pattern 패턴에 대하여 알아보고, 자바와 코틀린 예제를 알아보도록 하겠습니다. Chain of Responsibility Pattern이란???? 요청 처리가 들어오게 되면 그것을 수신하는 객체가 자신이 처리할 수 없는 경우에는 다음 객체에게 문제를 넘김으로써 최종적으로 요청을 처리할 수 있는 객체의 의해 처리가 가능하도록 하는 패턴입니다. 하나의 예로 자바의 try /catch / finally가 해당됩니다. try 블록 안에서 Exception이 발생하면 catch 블록으로 이동하여 catch블록을 실행하게 되는 것입니다. 구조 ● Handler : 요청을 처리하기 .. 2019. 10. 21.
가변인자 알아보기 ( ... , vararg 가변 인자 알아보기 자바의 가변 인자와 코틀린의 가변 인자를 비교하여 알아보도록 하겠습니다. Java의 가변인자 자바는 오버 로딩을 통하여 매개변수의 개수와 타입이 달라도 같은 이름의 메서드명으로 동일 기능을 구현할 수 있습니다. 그런데.. String divide(String s1, String s2){...} String divide(String s1, String s2, String s3){...} String divide(String s1, String s2, String s3, String s4){...} String divide(String s1, String s2, String s3, String s4, String s5){...} 위와 같이 매개변수가 끝없이 많아진다면..? 위 같은 문제를.. 2019. 10. 18.
[Design Pattern] Mediator Pattern [Design Pattern] Mediator Pattern mediator(중재자) 패턴에 대하여 알아보고 예시를 java로 작성한 예와 kotlin으로 작성한 예를 보도록 하겠습니다. Mediator Pattern 이란? mediator pattern은 클래스 간의 상호작용을 하나의 클래스에 위임하여 처리하는 패턴입니다. M:N의 관계에서 M:1의 관계로 복잡도를 떨어뜨려 유지보수 및 확장성에 유리합니다.(의존성이 적어집니다.) 다른 객체의 존재를 모르는 상태에서도 메시지를 주고받을 수 있습니다. 특징 ConcreteColleague클래스는 Colleague(동료) interface를 구현하고 있는 N개의 객체입니다. ConcreteCollegue 클래스 간 데이터 전달을 위하여 Mediator를 이.. 2019. 10. 18.
boilerplate boilerplate code란? github에 오픈소스를 검색하다보면 boilerplate라는 용어를 많이 접할 수 있습니다. boilerplate란 표준 문안이라는 뜻의 단어로 프로그래밍에서의 boilerplate code는 위키피디아의 설명을 보면 - 최소한의 변경으로 재사용할 수 있는 것 - 적은 수정만으로 여러 곳에 활용 가능한 코드, 문구 - 각종 문서에서 반복적으로 인용되는 문서의 한 부분 라고 설명되어있습니다. javaScript나 html에서의 보일러플레이트라고 하면 보통 크로스 브라우징과 호환성을 위한 Modernizr, polyfill, Normalize 등이 적용되어 있는 템플릿 같은 형태로 많이 사용됩니다.(어떻게보면 seed project와 비슷하다.) 반복되지만 자주쓰이는 형태.. 2019. 9. 15.
[Design Pattern] Builder Pattern [Design Pattern] Builder Pattern Builder Pattern에 대하여 알아보도록 하겠습니다. 빌더 패턴이란?? 인스턴스를 생성할 때, 생성자(Constructor)만을 통해서 생성하는 데는 어려움이 있습니다. 빌더 패턴은 이 문제를 기반으로 고안된 패턴 중 하나입니다. 예를 들면, 생성자 인자로 너무 많은 인자가 넘겨지는 경우 어떠한 인자가 어떠한 값을 나타내는지 확인하기 힘듭니다. 또 어떠한 인스턴스의 경우에는 특정 인자만으로 생성해야 하는 경우가 발생합니다. 이럴 경우, 특정 인자에 해당하는 값을 null로 전달해줘야 하는데, 이는 코드의 가독성 측면에서 매우 좋지 않다는 것을 직감적으로 알 수 있습니다. 코드를 통해 봐 보겠습니다. id, pw, name, address,.. 2019. 9. 15.
[Design Pattern] Singleton Pattern [Design Pattern] Singleton Pattern singleton pattern에 대하여 알아보도록 하겠습니다. 싱글톤이란?? 싱글톤은 단 하나의 인스턴스만 생성하도록 제약을 둔 디자인 패턴입니다. 싱글톤 (Singleton) 은 애플리케이션의 시작부터 종료될 때까지 한 번의 생성(new)으로 고정된 메모리 영역을 가지기 때문에 메모리를 효율적으로 사용할 수 있습니다. 또한 싱글톤의 인스턴스는 전역적으로 사용되기 때문에 다른 클래스의 인스턴스들이 데이터를 공유 변경이 가능하다는 장점이 있습니다. JAVA에서 구현하기 1. Eager Initialization (이른 초기화) 싱글톤 객체를 instance라는 변수로 미리 생성해 놓고 사용하는 방식입니다. 장점 : static으로 생성된 변수.. 2019. 9. 10.
Kotlin 코드 Java로 디컴파일하기 Kotlin 코드 Java로 디컴파일하기 Kotlin은 자바로 만들었습니다.Android Studio에서 제공하는 바이트 코드 디 컴파일을 사용하여 간단하게 컴파일 할 수 있습니다.Kotlin 디 컴파일안드로이드 스튜디오에서 Kotlin 플러그인을 설치, 실시간으로 Kotlin Bytecode 확인이 가능합니다.메뉴 위치는 안드로이드 스튜디오 Tools> Kotlin> Show Kotlin Bytecode를 눌러 주면 Kotlin Bytecode화면을 볼 수 있습니다.당신과 똑같은 순간 Kotlin Bytecode확인. 여기에서 자바 코드를 확인하는 바이트 코드를 확인하세요DecompileJava CPU 에서 컴파일 결과를 확인하십시오! 디 컴파일Kotlin Bytecode는 실시간으로 컴파일 된 결과를.. 2019. 3. 9.