소프트웨어공학5 State Pattern 상태 패턴 - 행위, 내부 상태를 가져서 특정 상태에서의 행동들을 하나의 class에 캡슐화 | Design pattern 디자인 패턴 State pattern The State Pattern allows an object to alter its behavior when its internal state changes. The object will appear to change its class. 규칙에 따라 객체의 상태를 변화시키면서 객체가 할 수 있는 행위를 바꾸는 패턴 특정 메소드가 객체의 상태에 따라 다른 기능을 수행 객체의 상태에 따라 동일한 루틴에서 다른 행동을 할 수 있다. 용어 내부 상태 프로그램의 실행 과정에서 현재 유지하고 있는 변수 및 실행 상황. 내부 상태를 가지는 머신 자판기, 엘레배이터, ATM 기기 내부 상태를 가지는 머신은 현재 상태에 따라 같은 행동(사건) 이 다른 결과를 낳을 수 있다. ex) 자판기내 음.. 2021. 12. 16. Decorator Pattern - 구조, 구성과 위임을 통해 특정 개체에 행동을 동적으로 추가 | [Design pattern] 디자인 패턴 Decorator Pattern 같은 class의 다른 객체들에는 영향을 주지 않고, 구성과 위임을 통해 특정 객체에 행동을 동적으로 추가 소스를 변경하지 않고 기능을 확장 기존 객체의 메소드에 새로운 행동을 추가하거나 오버라이딩 가능 객체에 독립적인 기능을 계속해서 추가, 확장할 때 유용 객체에 부가적인 기능을 동적으로 추가할 때 사용 문제점) 상속을 사용한 객체의 기능 확장은 subclass를 양산한다. Subclassing을 사용한 정적 확장의 문제점: ① 너무 많은 subclass가 필요함 ② 새로운 유형의 음료수가 개발될 때마다 subclass를 계속 추가되어야 함. 패턴 아이디어) DataInputStream dis; // primitive value dis = new DataInputStre.. 2021. 12. 11. Proxy Pattern 프록시 패턴 - 구조, Heavy object를 대리할 light object를 생성 | Design pattern 디자인 패턴 Proxy Pattern 프록시 패턴은 surrogate 와 다른 객체의 접근에 대한 통제를 할 수 있는 placeholder를 제공한다. 객체의 대리자를 이용하여 다른 객체로의 접근을 통제하는 패턴 대리 객체를 통해 원래 객체의 작업을 대신 수행 복잡한 작업과 단순한 작업을 나누어서 처리 원래의 기능을 수행하면서 부가적인 기능을 수행할 때 유용 문제점) 객체 생성에 비용(시간, 자원)이 많이 드는 Heavy object 가 있다. 프로그램이 종료될 때까지 한 번도 사용되지 않으면 시간, 자원의 낭비가 있다. Key Idea) Heavy object를 대리할 light object를 생성 - Heavy object와 동일한 인터페이스를 가지는 proxy (대리 객체) Heavy object 대신 prox.. 2021. 12. 4. Composite Pattern - 구조, 개별 객체와 복합객체를 통합적으로 다루기, children의 저장 순서가 요구될 때 / ex) 메뉴 | Design Pattern 디자인 패턴 Composite Pattern Treat individual objects and Composite of objects uniformly. 개별 객체와 복합 객체를 클라이언트에서 동일하게 사용 child가 parent에 대한 참조자를 가지면 - tree traversal이 용이해지며 - child 자신이 제거되기를 원하는 경우 편리함 children의 저장 순서가 요구되는 경우 Composite Object (복합 객체) 사용자 정의 클래스를 도메인으로 하는 속성을 가진 객체 복합 객체 시스템에서 기본으로 제공하지 않는 사용자 정의 클래스(user-defined class)를 도메인으로 하는 속성을 가진 객체를 복합 객체(composite object)라 한다. 복합 객체에서 사용자 정의 클래스를 도메.. 2021. 10. 14. Singleton 패턴 클래스의 인스턴스가 하나만 있는 것 | Design Pattern 디자인 패턴 디자인 패턴 Design Patterns 패턴이란 특정 context 내에서 주어진 문제에 대한 solution 이다. 문맥) 반복적으로 발생하는 상황 문제) context 내에서 이루고자 하는 목적과 제약 조건(constraint) 해결) 문제를 해결하는 일반적인 설계 디자인패턴 중 하나인 싱글톤 패턴 그 전에 " singleton " 에 대한 용어부터 알아보자. Singleton 1. (단독) 개체 2. 독신자 3. 외둥이(단일아) 출처 : 네이버사전 어떤 클래스의 인스턴스 갯수를 오직 하나로 제한하는 패턴 시스템 전체의 행동을 조정해주는 단 하나의 객체가 필요할 때 중앙집중적인 관리 Singleton Pattern : JVM 내에서 클래스의 인스턴스가 하나만 있는 것 어떤 클래스의 instance가.. 2021. 10. 5. 이전 1 다음