[디자인 패턴] 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 게시됨

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

디자인패턴

[디자인 패턴] Bridge 패턴

- 정의 구현으로부터 추상레이어(기능)를 분리하여 각자 독립적으로 변형할 수 있게 하는 패턴이다 즉, 구현과 기능을 분리하여 구현한다 - UML 1. Making인테스페이스를 만들고 이를 구현하는 MakingApartment와 MakingVilla클래스를 만든다. 2. House추상클래스를 만들고 이를 상속하는 Apartment와 Villa클래스를 만든다 - 코드 Making interface public interface Making { public void buildSkeleton(); public void cementWall(); } MakingApartment class public class MakingApartment implements Making{ @Override public void b..

2020.03.12 게시됨

[디자인 패턴] 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 게시됨

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

디자인패턴

[디자인 패턴] Builder 패턴

- 정의 복잡한 단계로 생성되는 생성자를 더 쉽고 가독성이 높게 생성할 수 있도록 고안된 패턴이다 - UML 1. Computer클래스를 만들고 cpu, ram, storage를 멤버 변수로 갖는다. Getter와 Setter를 설정하고 생성자를 정의한다 2. Computer객체 생성을 도와주는 ComputerBuilder클래스를 만든다. 이 클래스 역시 cpu, ram, storage를 멤버 변수로 갖는다. cpu, ram, storage 메소드를 통해 값을 저장하고 builder메소드로 Computer객체를 생성한다 - 코드 Computer class public class Computer { private String cpu; private String ram; private String stora..

2020.03.10 게시됨

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

디자인패턴

[디자인 패턴] ProtoType 패턴

- 정의 인스턴스를 생성할 때, 기존에 생성된 인스턴스를 복사하여 새로운 인스턴스를 생성하는 패턴이다 - UML 1. Programming클래스를 선언하고 os, network, db를 멤버 변수로 갖는다. 각각의 변수마다 getter와 setter를 설정해주고 copy함수를 통해 인스턴스를 복사할 수 있도록 한다 - 코드 Programming class public class Programming implements Cloneable{ private String os; private String network; private String db; public String getOs() { return os; } public void setOs(String os) { this.os = os; } publi..

2020.02.11 게시됨

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

디자인패턴

[디자인 패턴] Singleton 패턴

- 정의 하나의 인스턴스만을 생성하고, 인스턴스를 어디서든 참조할 수 있도록 하는 패턴이다 - UML 1. SystemSpeaker클래스를 선언하고 int형 volume, SystemSpeaker형 instance를 static으로 선언한다. instance는 static형이기 때문에 어디서든 참조가 가능하고 모든 SystemSpeaker객체가 instance를 공유한다 - 코드 SystemSpeaker class public class SystemSpeaker { static private SystemSpeaker instance; private int volume; private SystemSpeaker() { volume=5; } public static SystemSpeaker getInstanc..

2020.02.10 게시됨

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

디자인패턴

[디자인 패턴] Factory Method 패턴

- 정의 상황에 따라 어떤 객체를 생성할지를 결정하도록 하는 패턴이다 - UML 1. Item인터페이스를 정의한 후 아이템을 사용했을때 나오는 결과를 표현하기 위해 use메소드를 정의한다 2. TradeItem, EatItem, EquipItem은 Item인터페이스를 상속받아 use함수를 재정의한다 3. ItemUseFactory인터페이스를 정의한다 4. ItemUseFactoryImpl클래스를 정의하여 ItemUseFactory를 상속받고 Item형을 반환하는 메소드를 정의한다 - 코드 Item interface public interface Item { void use(); } EatItem class public class EatItem implements Item{ @Override public ..

2020.01.20 게시됨

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

디자인패턴

[디자인 패턴] Template Method 패턴

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

2020.01.19 게시됨