728x90 디자인 패턴8 템플릿 메소드 패턴(Template method pattern) 템플릿 메소드 패턴은 알고리즘의 구조를 메서드에 정의하고, 하위 클래스에서 알고리즘 구조의 변경없이 알고리즘을 재정의 하는 패턴이다. 알고리즘이 단계별로 나누어 지거나, 같은 역할을 하는 메서드이지만 여러곳에서 다른 형태로 사용이 필요한 경우 유용하다. 장점 1. 코드 중복을 줄일 수 있다. 2. 자식 클래스의 역할을 줄여 핵심 로직 관리가 용이하다. 단점 1. 추상 메서드가 많아지면 클래스 관리가 복잡해 진다. 2. 클래스 간의 관계와 코드가 꼬일 수 있다. 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 abstract cla.. 2022. 1. 4. 팩토리 패턴(Factory Pattern) 팩토리 패턴은 인스턴스를 만드는 절차를 추상화한 패턴이다. 팩토리 패턴은 생성 패턴 중 하나로 생성패턴은 객체를 생성, 합성하는 방법이나 객체의 표현 방법을 시스템과 분리해 준다. 생성패턴을 활용하면 객체 생성에 대한 유연성을 확보할 수 있다. Client의 makeShape()에서 사용자에게 도형을 이름을 입력받아 도형을 생성하는 코드가 있다고 해보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 interface Shape { void draw(); } class Circle implements Shape { @Override pub.. 2022. 1. 3. Observer pattern 객체의 상태 변화를 관찰하는 옵저버(관찰자)들이 있고 이런 옵저버들의 목록을 객체에 등록해 상태 변화가 있을 때 마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 즉, 옵저버의 리스트를 가지고 있는 객체의 상태가 변하면 옵저버를 통해 객체들에게 알림을 보낸다. 1 2 3 interface Listener{ void actionPerformed(); } cs 1 2 3 4 5 6 7 8 9 10 11 12 class ButtonActionListener implements Listener{ private Button myButton; @Override public void actionPerformed(){ System.out.println(this.myButton... 2021. 10. 1. 디자인패턴 1. 자주 사용하는 설계 형태를 정형화 해 이를 유형별로 설계 템플릿을 만들어 둔 것 2. 많은 개발자들이 경험상 체득한 설계 지식을 검증하고 이를 추상화하여 일반화한 템플릿 3. 동일한 문제 유형에 대해서 그 해결 방법에 대한 지식이나 노하우가 패턴 형태로 충붕히 일반화 된것 장점: -개발자 간의 원활한 의사소통 -소프트웨어 구조 파악 용이 -재사용을 통한 개발 시간 단축 -설계 변경 오청에 대한 유연한 대처 단점 -객체지향 설계 / 구현 위주 -초기 투자 비용 부담 명세 형식 이름 패턴은 이름과 타입을 가짐. 패턴의 타입은 생성, 구조, 행위 패턴으로 나뉜다 배경, 문제 패턴이 적용되는 상황 또는 다루려는 문제를 간단히 설명 솔루션 패턴의 구조적인 설계나 행위적인 설계를 기술. UML의 클래스 다이어.. 2021. 4. 30. 이전 1 2 다음 728x90