프로그래밍
-
[JAVA]객체 지향 디자인 패턴 - Template Method Pattern(탬플릿 메소드 패턴)프로그래밍/Java 2022. 3. 23. 23:21
Template Method Pattern이란? 어떤 메소드안에 정해진 형식이 있고 그 형식은 무조건 지켜져야 하지만, 형식안에 구현 부는 직접 작성하여 처리 할 때 사용하는 패턴 예를 들어 API 호출 할 때 Client가 request를 요청을 하면 무조건 response를 줘야하는 템플릿 이 있다고 가정해 보면 이것은 구조화된 형식 이므로 template Method로 구현이 가능하다. 그리고 그 방식은 어떻게 구현하든 상속받은 클래스에서 구현부를 자유롭게 정의 하는것이 template Method가 하는 역할이다. 방향성 및 형태만 잡아 주는 것이라고 생각하면 좋다 인증 Request를 보내는 것과 Response 받는 것은 똑같은 형식이다 하지만 그 받는 데이터 처리 하는 과정은 Kakao와 N..
-
[JAVA]객체 지향 디자인 패턴 - Proxy Pattern(대리인 패턴)프로그래밍/Java 2022. 3. 23. 16:44
Proxy Pattern이란? 어떤 객체의 행위가 무거운 행동일 때 이 내용을 먼저 보여주지 않고 Proxy라는 대리인을 먼저 보여준다음 진짜 수행해달라고 요청을 할때 내용을 수행하는 것을 의미한다. 예를 들어 유튜브 동영상리스트를 보면 먼저 thumbnail과 제목이 보이고 마우스를 위로 올리면 preview가 보이며 그것을 클릭을 했을 때 진짜 페이지가 이동하면서 동영상이 보이는 것처럼 thumbnail과 제목이 proxy(대리인)역할이며, Preview가 보이는 것이 Real 행동이라고 보면 된다. Proxy Pattern Structure(프록시 패턴 구조) 먼저 Thumbnail이라는 인터페이스를 기준으로 ProxyThumbnail, RealThumbnail을 작성한다. ProxyThumbnai..
-
[JAVA]객체 지향 디자인 패턴 - Adapter Pattern(어댑터 패턴)프로그래밍/Java 2022. 3. 23. 15:42
Adapter Pattern이란? Adapter란 다른 나라에서는 220v사용하는 제품을 우리나라로 들고 왔을 때 우리나라는 110v제품을 사용한다면 adapter라는 것을 이용하여 v 전압수를 맞추어 충전이나 사용가능하도록 해주는 역할을 말한다. 객체지향 언어에서 adapter란 객체간의 같은 기능을 하지만, 객체의 선언부나 타입 행동들이 맞지 않을 때 객체간의 간격을 맞추어서 사용할 수 있도록 해주는 역할을 한다 Adapter Pattern Structure(어댑터 패턴 구조) 220v 전자제품 AirConditioner, Cleaner가 있고, 110v HairDryer가 있다고 해보자 그런데 제품을 무조건 110v로 맞추어 사용해야한다고 하면 220v를 adapter를 이용하여 변경한 후에 사용이..
-
[JAVA]객체 지향 디자인 패턴 - State Pattern(상태 패턴)프로그래밍/Java 2022. 3. 22. 20:57
State Pattern이란? 상태의 범위가 정해져 있고, 상태를 객체단위로 관리하고 싶을 때 사용한다. 상태들은 공유해야하는 특성을 갖는다. 구조는 strategy패턴과 거의 동일하여 strategy패턴과 많이 혼동이 오는데 차이점은 state를 알려주고 서로 변경해주어야 한다는 점이다르다. State Pattern Structure(상태 패턴 구조) Context : 상태 패턴을 이용하는 역할을 수행한다. 하나의 객체에 상태를 조절하는 메소드를 부르는 역할을 한다. State : 인터페이스나 추상 클래스로 외부에서 동일한 방식으로 상태 알고리즘을 호출하는 방법을 명시한다. ConcreteState1, ConcreteState2, ConcreteState3 : State의 실제 알고리즘 구현부와 Sta..
-
[JAVA]객체 지향 디자인 패턴 - Strategy Pattern(전략 패턴)프로그래밍/Java 2022. 3. 22. 14:48
Strategy Patter(전략 패턴)이란? 하나의 똑같은 행동이 있는데 전략마다의 구현부가 다르게 동작하고 싶을 때 사용하는 패턴이다.같은 기능이지만 서로 다른 전략을 가진 클래스들을 구현하는 것 옵션 들마다의 행동들을 모듈화해서 독립적이고 상호 교체 가능하게 만드는 것을 의미한다. Strategy Pattern Structure(전략 패턴 구조) Context : 전략 패턴을 이용하는 역할을 수행한다. 필요에 따라 동적으로 구체적인 전략을 바꿀수 있도록 setter()메서 드를 제공한다. Strategy : 인터페이스나 추상 클래스로 외부에서 동일한 방식으로 알고리즘을 호출하는 방법을 명시한다. ConcreteStrategy1, ConcreteStrategy2, ConcreteStrategy3 : ..
-
[JAVA]객체 지향 디자인 패턴 - Singleton Pattern프로그래밍/Java 2022. 3. 22. 14:20
Singleton Pattern - 생성패턴의 일종으로 기초가 되는 가장 쉬운 디자인 패턴 하지만, 많이 중요한 디자인 패턴 - 프로그램에서 존재해야 하지만 객체 하나만 할당 받아 사용해야하는경우 - 생성된 객체가 어디에서든지 참조가 가능해야함 Singleton Structure - 싱글턴 구조는 하나의 객체가 있어야 하며, 한번만 생성되는 영역이 있어야함 - 그리고 다른 곳에서(FirstPage, SecondPage)에서 그 영역에 공통적으로 접근이 가능해야하며 동일 값을 가져 올 수 있도록 해야함 Singleton Example 1 (출처. 얄팍코딩) - settings라는 객체가 있다고 가정 - settings에 화면 darkmode, lightmode가 있다고 하고 이것을 darkmode로 설정하..
-
[Java Interface] 인터페이스를 사용하는 이유프로그래밍/Java 2022. 3. 20. 13:04
인터페이스(Interface) 구현 코드가 없는 메서드들의 집합을 의미함. 모든 메서드가 추상 메서드로 선언됨 적지 않아도 추상 메서드로 JVM에서 알아서 선언 모든 변수는 상수로 선언됨 모든 인터페이스는 형변환이 가능 형변환해서 사용한다고 하면, 상위 인터페이스 객체로 만들면 상위 인터페이스에 있는 메서드만 사용가능하고 하위클래스에서 만든 함수는 사용하지 못함 인터페이스 사용법 interface로 생성된 곳에 상속받아 구현할 메서드의 내용만 작성함 implements를 사용하여 상속을 받음 하위클래스에서 interface에 정의된 내용을 일부분만 구현을 한다면 abstract를 사용하여 처리해야함, 다 구현을 한다면 abstract를 정의 하지 않아도됨 인터페이스를 사용하는 이유 클래스나 프로그램이 제..
-
[JAVA abstract]추상화 클래스 , 메서드 알아보기프로그래밍/Java 2022. 3. 20. 11:15
추상화 클래스 구현 코드 없이 메서드의 선언만 있는 추상메서드를 포함한 클래스 메서드 선언 반환타입, 메서드 이름, 매개변수로 구성 메서드 정의 네서드구현과 동일 한 의미 구현부를 가짐 추상 클래스는 new할 수 없음(인스턴스 생성 x) 추상클래스 사용 방법 클래스 앞에 abstract를 붙인다 추상 메소드가 있어야 한다. 하위 클래스에서 추상화가 적용된 부분을 모두 재구성하여 사용한다면 abstract를 사용하지 않아도 된다. 하위 클래스에서 추상화가 적용된 부분을 모두 재구성하지 않는다면 abstract를 클래스와 함수에 붙여두어야한다. 안그럼 오류 발생 //추상 클래스 public abstract class Computer { public abstract void display(); public a..