Singleton
하나만 만들어야 하는 경우가 있음. -> 세팅을 관리하는 객체는 하나만 만들어져야함.
-> 이 경우에서는 페이지2,3가 Settings가 서로 다른 객체이기 때문에 문제가 발생한다!
-> getSettings를 활용하게 되어 처음에 생선된 것이 정적으로 만들어져 두 페이지 모두 공유되어 하나의 값을 바라보는 것을 확인할 수가 있다.
-> 멀티스레드 등에서 문제가 발생할 수가 있기 때문에, 언어별로 해결하는 것은 찾아보아야 함!
Strategy : 전략 패턴
모드가 바뀔때마다 -> 전략이 수정되어 다르게 나오게 된다.!!
클래스별로 지정해서 모듈화된 것으로 만들어야함!!
검색 모듈을 갈아끼우는 방식으로 만들어줘야 한다!!
초기화 진행후에 세터로 설정하고 나면, 기존에 인터페이스인 SearchStrategy를 상속받아 search 메소드를 수행할수 있게 된다!
State
전략 패터는 동일한 패턴안에 있는 특정 작업의 방식, 모드를 바꿔줄때,
State 패턴은 특정 상태마다 다르게 할 일을 하나하나 모듈화해서 지정하는 경우!
위 코드와 같이 상태를 변경할수 있도록 한다(여기서는 모드, 정확히는 토글을 통해서 진행함)
Strategy 패턴이 모듈화된 모드에 따라 다르게 실행되도록 하는 거라면
State 패턴은 메소드가 실행될 때 모드도 전환되도록 하는 것!
Command
전략 패턴은 같은 일을 하되 알고리즘이나 방식이 갈아끼워지는 것이라면
커맨드 패턴은 하는 일 자체가 다른거
여러 명령들을 목록대로 실행시키는 것에 가깝다
순서대로 실행되는 것을 알 수가 있다.
Adapter
형식이 다른 두 사이를 연결해주는 것
인터페이스가 서로다른 객체들이 같은 형식 안에서 작동할 수 있도록
요리해라라고 하면은 제빵해라라고 안해도 모두가 다 작동할 수 있도록 변경하는 것!
예를 들어서 검색에서 다른 사이트에서 제공하는 동영상을 가져오고 싶다고 할 때 인터페이스의 충돌이 일어남
search라고 하면, 기존에 내장된 인터페이스에서 find(true)가 작동되어,
search를 통해서, 동영상 검색 find도 가능해짐을 알수가 있따.
로봇의 경우에서도 유사하게 execute를 실행하면,
원래 인터페이스에 있는 run을 돌릴수가 있게 된다.
Proxy
대리인 역할을 하는 프록시를 시키고,
무거운 작업을 하는 경우 클래스가 실행하게 한다!
유투브의 경우 썸네일이나 제목은 보여주기 쉬우니 프록시로 하지만,
실제 마우스 커서 가져다 대면 프리뷰 보여주는 기능은 클래스가 작동하도록 함.
------------------------------------------------------------------
출처 : 유투버 얄팍한 코딩 사전
'Develope_Web&App > 01_Java & JavaFX' 카테고리의 다른 글
[Java] Chap04 조건문과 반복문 (0) | 2021.01.27 |
---|---|
[Java] 03 연산자(Operator) (0) | 2021.01.26 |
[Java] chap 02. 변수 (0) | 2021.01.26 |
객체지향 디자인패턴2 (0) | 2020.12.26 |
객체지향 프로그래밍 (0) | 2020.12.26 |