[12장] MVC
MVC옵저버, 전략, 컴포지트 패턴으로 이루어진 복합패턴으로, 모델, 뷰, 컨트롤러로 이루어져 있다.모델-뷰-컨트롤러모델모델에는 모든 데이터, 상태와 애플리케이션 로직이 들어있다.뷰와 컨트롤러에서 모델의 상태를 조작할 때 필요한 인터페이스를 제공하고, 모델은 뷰와 컨트롤러에게 상태 변화를 알린다.뷰사용자 인터페이스 요소로, 모델을 기반으로 사용자가 볼 수 있는 화면변경이 일어나면 컨트롤러에 이를 전달해야 한다.컨트롤러하나 이상의 모델과 하나 이상의 뷰를 잇는 다리 역할로, 이벤트 등의 메인 로직 담당한다.모델과 뷰의 생명주기를 관리한다.모델이나 뷰의 변경 통지를 받으면 이를 해석하여 각각의 구성요소에게 이를 알려준다.동작 과정1. 사용자는 뷰에만 접촉할 수 있다. 뷰는 무슨일이 일어났는지 컨트롤러에게 알..
- Books/Head First Design Pattern
- · 2024. 5. 24.
[11장] Proxy Pattern
Proxy Pattern특정 객체로의 접근을 제어하는 대리인(특정 객체를 대변하는 객체)을 제공하는 패턴이다.대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴이다.접근 제어 방법원격 프록시를 사용하여 원격 개체로의 접근을 제어할 수 있다.가상 프록시를 써서 생성하기 힘든 자원으로의 접근을 제어할 수 있다.보호 프록시를 써서 접근 권한이 필요한 자원으로의 접근을 제어할 수 있다.모니터링 코드로컬 모니터링모니터링할 클래스public class GumballMachine { String location; public GumballMachine(String location) { this.location = location; } ..
- Books/Head First Design Pattern
- · 2024. 5. 24.
[6장] Command Pattern
Command Pattern요청 내역을 객체로 캡슐화해서 객체를 서로 다른 요청 내역에 따라 매개변수화할 수 있다. 요청을 큐에 저장하거나 로그로 기록하거나 작업 취소 기능, 트랜잭션 시스템을 구현할 수 있다.리모컨 코드리모컨의 각 슬롯을 클릭했을 때, 명령을 통해 행동을 수행하고 각 슬롯마다 다른 명령을 수행해야 한다.Command Interface모든 커맨드 객체에서 구현해야 하는 인터페이스이다.execute() 메서드를 생성한다.public interface Command { public void execute();}Command Concrete행동을 수행할 구상 클래스이다.리시버 객체를 생성한다.excute 함수가 호출되면 리시버 객체에게 특정 작업을 처리하라는 지시를 전달한다.public cla..
- Books/Head First Design Pattern
- · 2024. 5. 24.
[5장] Singleton Pattern
Singleton Pattern클래스 인스턴스를 하나만 만들고, 그 인스턴스로의 전역 접근을 제공한다.구현 기법1) Lazy initializationpublic class Singleton { private static Singleton uniqueinstance; // 하나뿐인 인스턴스를 저장하는 정적 변수 private Singleton() {} // 생성자를 private로 선언 public static Singleton getInstance() { // 클래스 인스턴스를 하나만 생성 if(uniqueInstance == null) { // 인스턴스가 생성되지 않았을 때 uniqueInstance = new Singleton(); // 객체 생성 ..
- Books/Head First Design Pattern
- · 2024. 5. 24.