[Java] 디자인 패턴 - 모델-뷰-컨트롤러 패턴 모델-뷰-컨트롤러(Model-View-Controller) 패턴 애플리케이션을 세 개의 영역으로 분할하고 각 구성 요소에게 고유한 역할을 부여하는 개발 방식 각 컴포넌트는 자신이 맡은 역할만 수행한 후 다른 컴포넌트로 결과만 넘겨주면 되기 때문에 시스템 결합도 저하 유지보수 시에도 특정 컴포넌트만 수정하면 되기 때문에 보다 쉽게 시스템 변경 가능 (∵ 도메인(비즈니스 로직) 영역과 UI 영역이 분리) 구성 요소 컨트롤러 모델과 뷰를 이어주는 역할 사용자가 실행한 변경 이벤트들을 처리 모델과 뷰의 변경을 모니터링 모델 데이터의 가공을 책임지는 부분 비즈니스 로직을 처리한 후 모델의 변경사항을 컨트롤러와 뷰에 전달 뷰 사용자에게 보여지는 부분 (유저 인터페이스) 받은 데이터를 화면에 표시 모델에게 전달받은 .. TIL/Java 3년 전
[Java] 디자인 패턴 - 프록시 패턴 프록시(Proxy) 패턴 어떤 객체를 사용하려고 할 때 객체를 직접 참조하지 않고 프록시 객체를 통해 대상 객체에 접근하는 디자인 유형 동기적인 처리를 최대한 비동기적으로 처리하기 위해 사용 사용 예시 참조 횟수 스마트 포인터 객체 장점 사이즈가 큰 객체(ex. 이미지)가 로딩되기 전에도 프록시를 통해 참조 가능 실제 객체의 메소드들을 숨기고 인터페이스를 통해 노출 가능 로컬에서 떨어져 있는 객체 사용 가능 원래 객체의 접근에 대해서 사전처리 가능 단점 로직이 복잡해 가독성이 떨어짐 객체를 생성할 때 한단계를 걸치므로, 빈번한 객체 생성이 필요한 경우 성능 저하 우려 [ 출처 ] https://refactoring.guru/design-patterns/proxy https://coding-factory... TIL/Java 3년 전
[Java] 디자인 패턴 - 싱글톤(Singleton) 패턴 싱글톤 패턴 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴하는 디자인 유형 주로 공통된 객체를 여러개 생성해서 사용 생성자를 private으로 선언 new를 통한 객체 생성 불가 직접적인 접근 불가 구현 class SingleTon { private static let Instance = SingleTon() private init() { } } static을 사용해 인스턴스를 저장할 프로퍼티 생성 인스턴스의 재생성을 막기 위해 init() 함수의 접근 제어자를 private으로 지정 사용 사례 DataBase Connection Pool(DBCP) 환경설정, 네트워크 객체, 로그인 정보 등을 특정 용도로 생성 장점 .. TIL/Java 3년 전