[디자인 패턴] State 패턴 포스팅 썸네일 이미지

디자인패턴

[디자인 패턴] State 패턴

- 정의 객체 내부의 상태에 따라 다른 행동을 취할 수 있게 해주는 패턴이다 - UML 1. State인터페이스안에 두 가지 sitDown과 getUp메소드를 정의함 2. SittingPerson과 StadingPerson은 State인터페이스를 구현하여 getUP과 sitDown메소드를 오버라이딩함 3. Person클래스는 setState를 통해 상태를 설정하고, getUp과 sitDown을 통해 행위를 수행하도록 함 - 코드 State interface public interface State { public void sitDown(Person person); public void getUp(Person person); } SittingPerson class public class SittingPer..

2020.03.24 게시됨

[디자인 패턴] Mediator 패턴 포스팅 썸네일 이미지

디자인패턴

[디자인 패턴] Mediator 패턴

- 정의 다대다 관계에서 일대다 관계로 만들어주는 패턴이다 - UML 1. Cook인터페이스는 배달원(중재자)을 설정하는 setMediator메소드와 음식을 만드는 makeFood메소드를 갖는다 2. Cook인터페이스를 구현한 ChineseChef, JapaneseChef, KoreanChef는 메소드를 오버라이딩하여 구현한다 3. Mediator클래스는 배달할 음식을 받는 deliveryFood메소드와 주문 고객을 추가하는 addCutomer메소드를 갖는다 4. Customer인터페이스는 음식을 받는 receiveFood메소드를 갖는다 5. Customer인터페이스를 구현하는 Apartment, Villa, Office클래스는 receiveFood메소드를 오버라이딩한다 - 코드 Cook interfac..

2020.03.23 게시됨

[디자인 패턴] Observer 패턴 포스팅 썸네일 이미지

디자인패턴

[디자인 패턴] Observer 패턴

- 정의 어떤 객체에 이벤트가 발생했을 때, 이 객체에 등록된 옵저버들에게 통지하도록 하는 디자인 패턴이다 - UML 1. Subject인터페이스는 옵저버들을 추가, 삭제 및 알림 기능을 갖고 있으며 옵저버의 관리 역할을 한다 2. NewspaperPublisher클래스는 Subject인터페이스를 상속받아 옵저버들을 관리할 수 있다 3. Observer인터페이스는 update메소드를 통해 상태가 바뀔때 마다 그에 맞는 행동을 취할 수 있게 만든다 4. Subscriber1, Subscriber2, Subscriber3클래스는 Observer인터페이스를 상속받아 update메소드를 구현한다. 생성자를 통해 NewspaperPublisher에게 자기 자신을 등록하고, unsubscribe메소드를 통해 pub..

2020.03.22 게시됨

[디자인 패턴] ChainOfResponsibility 패턴 포스팅 썸네일 이미지

디자인패턴

[디자인 패턴] ChainOfResponsibility 패턴

- 정의 요청이 들어올때 해당 요청을 처리할 수 없는 경우 다음 객체에게 문제를 넘김으로써 최종적으로 요청을 처리할 수 있도록 하는 패턴이다 - UML 1. Exception추상클래스를 생성한다 - Exception배열을 생성하여 4가지 Exception을 넣어준다 - Exception을 받아온 뒤 어떤 예외인지 찾기위해 next메소드를 수행하는 findError메소드 - Exception을 받아 현재 배열에 들어있는 예외들과 일치하는게 있으면 해당 Exception클래스를 반환하고 일치하는게 없으면 콘솔에 null을 반환하는 next메소드 - 파라미터로 받은 에러의 이름과 현재 클래스의 이름이 같은지 확인하는 check메소드 2. NullPointException, RuntimeException, Cl..

2020.03.19 게시됨

[디자인 패턴] Composite 패턴 포스팅 썸네일 이미지

디자인패턴

[디자인 패턴] Composite 패턴

- 정의 단일 객체와 복합 객체를 동일하게 처리 할 수 있게끔 하는 패턴이다. - UML 1. Component라는 인터페이스 혹은 추상클래스를 만든다 2. Component를 상속 혹은 구현하는 Stuff클래스를 만든다 3. Component를 상속 혹은 구현하는 Box클래스를 만들고 Component타입을 담을 수 있는 List와 추가 및 삭제에 필요한 메서드를 정의한다 - 코드 Component abstract class public abstract class Component { protected String name; public Component(String name) { this.name = name; } } Stuff class public class Stuff extends Compone..

2020.03.13 게시됨

[디자인 패턴] AbstractFactory 패턴 포스팅 썸네일 이미지

디자인패턴

[디자인 패턴] AbstractFactory 패턴

- 정의 서로 관련이 있는 객체들을 묶고 조건에 따라 관련된 객체들을 한꺼번에 객체를 생성하는 패턴이다 - UML 1. Food인터페이스를 만들고 이를 구현하는 WinterFood와 SummerFood클래스를 만든다 2. Clothes인터페이스를 만들고 이를 구현하는 WinterClothes와 SummerClothes클래스를 만든다 3. SeasonPlanFactory인터페이스를 만들고 이를 구현하는 SummerPlan과 WinterPlan클래스를 만들어 계절별로 계획을 실행할 수 있도록 한다 - 코드 Food interface public interface Food { public void eat(); } WinterFood class public class WinterFood implements Fo..

2020.03.11 게시됨

[디자인 패턴] Template Method 패턴 포스팅 썸네일 이미지

디자인패턴

[디자인 패턴] Template Method 패턴

- 정의 상위 클래스에서 처리 흐름을 제어하고, 하위 클래스에서는 상위 클래스의 처리 흐름(각각의 기능)에 해당하는 메소드를 재정의 하는 패턴이다 - UML 1. GameConnectHelper클래스에 연결을 요청하는 requestConnection메소드와 보안담당 doSecurity, 인증담당 authentication, 권한담당 authorization, 연결담당 connection메소드를 정의한다. requestConnection은 나머지 메소드를 한꺼번에 실행하여 일련의 로그인 과정을 처리해주는 메소드이다. 나머지 메소드들은 재정의가 가능한 메소드이다 2. DefaultGameConnectHelper클래스는 GameConnectHelper클래스를 상속받아 보안담당 doSecurity, 인증담당 a..

2020.01.19 게시됨