'CS Study/디자인패턴' 카테고리의 글 목록
본문 바로가기
728x90
반응형

CS Study/디자인패턴84

2022-07-18-옵저버패턴-3부-장점과단점 01.옵저버패턴의 장단점 다수의 객체가 특정 객체 상태 변화를 감지하고 알림을 받는 패턴 01.1 장점 상태를 변경하는 객체 (publisher)와 변경을 감지하는 객체(subscriber)의 관계를 느슨하게 유지할 수 있음 Subject 상태변경을 주기적으로 감지하지 않더라도 데이터를 받아옴 런타임 주기에 옵저버를 등록,해제 할 수 있다는 장점이 있음 01.2 단점 복잡도가 증가함 오브젝트 등록하고 해제하는 과정 필요 등록되어 있는 오브젝트가 등록안하고 해지 안하면 쌓이는데 계속 가지고 있어서 가비지컬렉터의 대상이 되지 않음 맵에 담아놔서 다른곳에서 쓰지 않아도 맵에 담겨있다는 것만으로도 대상이 안되는것 그래서 메모리 누수 현상이 발생하게됨 대안으로 unregister해주거나 하는것이 가장 좋은 방법이.. 2022. 7. 18.
2022-07-18-옵저버패턴-2부-패턴적용하기 01.옵저버패턴으로 적용 01.1 Subcriber public interface Subscriber { void handleMessage(String message); } 01.2 User public class User implements Subscriber { private String name; public User(String name) { this.name = name; } public String getName() { return name; } @Override public void handleMessage(String message) { System.out.println(message); } } 01.3 ChatServer before import java.util.ArrayList; im.. 2022. 7. 18.
2022-07-18-옵저버패턴-1부-패턴소개 01.옵저버패턴 감지하고 상태의 변경을 지켜보는 패턴 여러개의 객체들이 보통 어떤 상태를 감지하고 반응할때 사용 퍼블리시 서브스크라이브 패턴을 쉽게 적용할 수 있음 02.코드로 보는 디자인패턴 적용전 02.1 Client.java public class Client { public static void main(String[] args) { ChatServer chatServer = new ChatServer(); User user1 = new User(chatServer); user1.sendMessage("디자인패턴", "이번엔 옵저버 패턴입니다."); user1.sendMessage("롤드컵2021", "LCK 화이팅!"); User user2 = new User(chatServer); System.. 2022. 7. 18.
2022-07-11-중재자패턴-3부-장점과단점 여러 객체들이 소통하는 캡슐화하는 패턴 01.장점 컴포넌트 코드를 변경하지 않고 새로운 중재자를 현재는 클래스라서 좀 변경이되면 문제가 있지만 인터페이스였으면 메소드 자체는 바뀌지 않을것 각각의 컴포넌트 코드를 보다 간결하게 유지할 수 있음 코드 수정, 변경시 front desk만 요청하면되니 상관이 없음 연예인 같은 경우 매니저를 통해서 일을 하는 것 같이 중재자가 매니저 같은 것임 02.단점 중재자 역할을 하는 클래스의 복잡도와 결합도가 증가함 매니저하는 일이 복잡하는 것 처럼 이자체가 복잡해짐 한쪽으로 몰려 있기때문에 안좋지만 단점보다는 장점이 좋아서 쓴다. 2022. 7. 18.
728x90
반응형