(디자인 패턴) 팩토리 메소드 패턴과 abstract 팩토리 패턴
*Factory Pattern은 인스턴스의 생성과정을 숨긴 채, 다 만들어진 인스턴스를 반환해주는 역할을 한다. 때문에 Factory Pattern은 생성과정에서 여러가지 작업을 해줘야 하는 상황에 사용한다.
Factory 패턴에서 중요한 것은 생성할 객체의 추상화에 있다. (abstract를 말하는 것이 아니다.) 생성과정에서 추상화된 객체를 반환하여 상속받는 모든 자식의 클래스를 다루게 된다.즉, 생성과정의 변환에 관계없이 프로그래밍을 가능하게 하며 생성과정을 캡슐화하여 외부에 노출을 줄이게 된다. 그리고 코드의 확장성을 크게하여 새롭게 추가되는 기는ㅇ에 유연하게 대처할 수 있게해준다. 그리고 코드의 커플링을 낮추어 코드 유지차원에서도 효과를 톡톡히 볼 수 있다.
Abstract factory Pattern을 사용하면 Strategy Pattern을 사용할 때 처럼 큰 유연성을 가져다 준다. 생성루틴을 확장할 수 있고, 프로그램 실행중에도 생성루틴을 다이나믹하게 갈아낄 ㅅ 있다. 그럼에도 사용하는 측의 코드에 전혀 영향이 가지 않는다는게 최대 장점이다.
하지만 코드의 양이 많아지고, 객체를 생성하기 까지 다소 복잡한 과정을 거쳐야 한다.
생성과정에 규모가 작다면 오히려 코드의 이해도를 떨어뜨리는 패턴이 될 가능성을 가직 있으나 신중하게 생각해서 적용해야 한다.
Factory 패턴에서 중요한 것은 생성할 객체의 추상화에 있다. (abstract를 말하는 것이 아니다.) 생성과정에서 추상화된 객체를 반환하여 상속받는 모든 자식의 클래스를 다루게 된다.즉, 생성과정의 변환에 관계없이 프로그래밍을 가능하게 하며 생성과정을 캡슐화하여 외부에 노출을 줄이게 된다. 그리고 코드의 확장성을 크게하여 새롭게 추가되는 기는ㅇ에 유연하게 대처할 수 있게해준다. 그리고 코드의 커플링을 낮추어 코드 유지차원에서도 효과를 톡톡히 볼 수 있다.
Abstract factory Pattern을 사용하면 Strategy Pattern을 사용할 때 처럼 큰 유연성을 가져다 준다. 생성루틴을 확장할 수 있고, 프로그램 실행중에도 생성루틴을 다이나믹하게 갈아낄 ㅅ 있다. 그럼에도 사용하는 측의 코드에 전혀 영향이 가지 않는다는게 최대 장점이다.
하지만 코드의 양이 많아지고, 객체를 생성하기 까지 다소 복잡한 과정을 거쳐야 한다.
생성과정에 규모가 작다면 오히려 코드의 이해도를 떨어뜨리는 패턴이 될 가능성을 가직 있으나 신중하게 생각해서 적용해야 한다.
댓글
댓글 쓰기