본문 바로가기
728x90
반응형

java8

[Design Pattern]Composite Pattern이란? Composite Pattern이란? 객체들을 트리 구조로 구성하여 단일 객체와 복합객체를 동일하게 제어 가능하도록 하는 패턴 Composite Pattern 3요소 component : leaf와 composite의 상위클래스로써 이들을 동일하게 취급하게할 interface. composition(구성자)을 위한 인터페이스로 구성. client class는 이 인터페이스를 사용하여 작업한다. interface 또는 abstract class 그리고 모든 클래스를 위한 약간의 공통 메소드 역시 포함한다.leaf : component를 구현하는 클래스 요소로 이 클래스들을 쌓아올려 하나의 구성물을 만든다. composite : 다수의 leaf 클래스를 제어하는 클래스로 component를 이용해 공통 작업.. 2019. 1. 18.
[Design Pattern]Bridge Pattern이란? Bridge Pattern이란? 구현부에서 추상층을 분리하여 각자 독립적으로 변형할 수 있게하는 패턴이다. 클래스를 다른 인터페이스로 변형시키는 면에서 adapter pattern과 유사함. 상속을 이용한 패턴으로 확장 설계에 용이하다. 요청하는 부분의 코드 수정 없이 실제 구현부분의 수정을 가능하게 만든다. 예제 TV interface1234567public interface ITV { public void on(); public void off(); public void switchChannel(int channel);}Colored by Color Scriptercs ITV interface를 implements한 클래스 1123456789101112131415public class SamsungT.. 2019. 1. 18.
[Design Pattern]Adapter Pattern이란? Adapter Pattern이란? 관계가 없는 인터페이스들이 같이 일할 수 있도록 도와주는 패턴이다. 두개의 인터페이스를 이어주는 인터페이스를 adapter라 한다. 예제public class Line { private int lines; public Line(int line) { this.lines = line; } public int GetLines() { return this.lines; } public int SetLines(int line) { this.lines = line; } } public class Station { public Line GetLine() { return new Line(1); } }Station클래스는 1호선만 다닐 수 있다. 하지만 4호선 9호선도 같이 다닐 수 있으.. 2019. 1. 18.
[Design Pattern]Prototype Pattern이란? Prototype Pattern이란? 패턴 내에서 객체의 생성을 제공한다. 객체 생성이 높은 비용으로 수 많은 요청을 하는경우나 비슷한 객체를 지속적으로 생성해야 할 때 사용한다. prototype pattern은 원래의 객체로부터 clone()을 사용하여 새로운 객체를 만들며 각 객체에 따라 데이터 수정이 가능하다. 예제 public class Users implements Cloneable { private List userList; public Users() { userList = new ArrayList(); } public Users(List list) { this.userList = list; } public void loadData () { userList.add("ssw"); userLis.. 2019. 1. 17.
[Design Pattern]Builder Pattern이란? Builder Pattern이란? factory pattern이나 abstract factory pattern과 비슷하다.이 두 패턴은 중대한 문제점이 있다. factory pattern / abstract factory pattern 문제점 3가지 - 호출하는 클래스로부터 많은 인자(파라메터)들이 전달된다. -> 에러발생이 많아질 수 있다. 인자들의 type을 정확히 맞추기 어렵기 때문이다. - 몇몇 파라메터들을 보내고 싶지만 모든 인자를 전송해야한다. - 생성시키는 객체가 많은 정보를 필요로 한 경우(파라메터가 많다 = 생성되어야 하는 객체가 무겁다) 만들기가 복잡해진다. Builder Pattern은 파라메터가 많던지 적던지 일관성있게 차례차례 제공해준다. 예제public class Product .. 2019. 1. 17.
[Design Pattern]Abstract Factory Pattern이란? Abstract Factory Pattern이란 추상 팩토리 패턴은 많은 수의 연관된 서브 클래스를 특정 그룹으로 묶어 한번에 교체할 수 있도록 만든 패턴. 예로 안드로이드 버전에 따라 지원하는 기능이 다르다면 추상 팩토리 패턴을 사용해 업데이트하면 버전별 기능을 통합적으로 변경 할 수 있다. factory method pattern과 유사하지만 fatory를 좀 더 생산적으로 만들 수 있다. 기존 팩토리 패턴에서와 달리 if-else 구문을 없애고 sub class마다 factory class를 가지게한다. Abstract Factory에서는 input factory class를 통해 해당 sub class를 반환한다. MachineA, MachineB public interface MachieA{ p.. 2019. 1. 17.
[Design Pattern]Factory Method Pattern이란? Factory Method Pattern이란? 객체를 만들어내는 부분을 서브 클래스에 위임하는 패턴. super class와 여러 개의 sub class가 있는 상황에서 input이 발생하면 하나의 sub class를 반환해야 할 때 사용된다. 쉽게 말해 new를 사용해 호출하는 부분을 서브 클래스에 위임하는 ㄱ Super class factory pattern에서 super class는 interface, abstract class 또는 일반적인 class가 될 수 있다. 예제에서는 출력을 보기 위해 toString() method를 오버라이드 한다. public abstract class Product { public abstract String getName(); public abstract int.. 2019. 1. 17.
[프로그래밍]Design Pattern Outline, 디자인 패턴이란? 디자인 패턴이란?소프트웨어 설계할 때 또는 프로그램 개발과정에서 특정 부분에서 많이 발생하는 문제를 정리하여상황에 따라 해결할 수 있는 해결책(패턴) 패턴이란?다양한 소프트웨어들로 각기 다른 프로그램을 개발하는 과정에서 공통적인 문제점 또는 유사한 문제점이존재하고 이를 처리하는 과정도 공통점이 있는데 이러한 유사점을 패턴이라 한다. 디자인 패턴구조Context : 문제발생 상황 기술 -> 패턴이 적용될 상황 기술 패턴이 항상 유용한 것은 아니다.Problem : 패턴적용으로 해결되어야 할 디자인 이슈들을 기술 여러 제약사항과 영향력도 문제 해결을 위해 고려Solution : 문제를 해결하도록 설계를 구성하는 요소들과 그 요소들 사이의 관계, 책임, 협력 관계를 기술 해결은 반드시 구체적인 구현 방법, 언.. 2019. 1. 16.
728x90
반응형