<영상공부> 디자인패턴1

김조은·2023년 11월 3일

영상공부 모음

목록 보기
35/49

movie




Singleton 패턴

: 객체를 하나만 사용해야 하는 경우




<변경 전>

  • 위 사진을 보면 FirstPage와 SecondPage의 Seetings가 서로 다른 객체임을 알 수 있다
    때문에, FirstPage의 셋팅 값이 SecondPage에는 적용되지 않음




    <변경 후>

  1. Settings에 private Settings(){}; 를 선언해주면 new Settings를 사용하지 못하게 된다
  2. Settings에 private static Settings settings = null;을 통해 정적 공간을 사용하게 된다(메모리 용량을 알 수 있게 정해줌)
  3. FirstPage와 SecondPage에다 new Settings가 아닌 getSettings를 추가



    <결과>

-> FirstPage에서 static을 선언해 주었기 때문에 new Settings를 하지 않아도 정적공간의 값이 SecondPage에도 적용되어 같은 15를 출력함



Strategy 패턴

= 전략 코드
모드의 동작 하나하나를 모듈로 따로 분리해 버튼을 누를 때 마다 실행 될 모듈로 갈아끼워주는 방식으로 코드를 짜는 방식




<변경 전>

  • mode를 선언 해준 후, 변수에 따라 mode에 값이 다르게 들어가는 것을 확인할 수 있음
  • SearchButton에서 검색을 누를 때 마다 if문에 따라 기능이 실행되는데 기능이 추가 될수록 관리하기 번거로워짐



    <변경 후>
  • interface와 그에 따른 implements를 부여 해주고 그 안에 기능에 따른 내용을 추가 해줌
    -> 독립적이고 상호교체 가능하게 만들 수 있음



State 패턴

-> 위 사진과 같이 할 일을 상태와 같이 묶어 모듈화를 지정해서 쓰는 것이라고 봐야 함

  • 해당 모드가 실행될 때 모드도 전환 됨



Command 패턴

  • abstract 추상화인 Command 부모 클래스와 그 상속 받은 자식들의 클래스가 존재



Adapter 패턴

  • 인터페이스가 서로 다른 객체들이 같은 형식 아래 작동할 수 있도록 하는 역할(어댑터)을 함



Proxy 패턴

= 대리인의 의미를 가짐
: 대리자, 대변인은 누군가를 대신해서 그 역할을 수행하는 존재

0개의 댓글