02 Aug

factory 패턴 예제

마지막으로, 콘크리트 공장 방법 장난감공장은 수정될 필요가있다. 위치 특정 구성 요소를 추가하는 곳입니다공장. NyToysFactory에 대한 코드를 완료해 보겠습니다: 예를 들어 트럭 과 Ship 클래스 모두 배달이라는 메서드를 선언하는 전송 인터페이스를 구현해야 합니다. 각 클래스는 다르게이 방법을 구현 : 트럭은 육로화물을 제공, 선박은 바다로화물을 제공합니다. RoadLogistics 클래스의 팩토리 방법은 트럭 객체를 반환하는 반면 SeaLogistics 클래스의 팩토리 방법은 선박을 반환합니다. 의견을 주셔서 감사합니다. 위의 주석을 기반으로 AbstractFactory 구현을 업데이트했으며 이제 새로운 유형의 Animal을 추가할 때 하위 클래스를 수정할 필요가 없습니다. 예제의 getFactory 메서드는 FactoryProvider 클래스에 배치되지만 if 문을 사용 하지만 맵이 아닙니다. 자바의 추상적 인 공장 디자인 패턴에 여전히 의심의 여지가 있는 경우 의견을 남겨주세요. 나는 당신과 함께 논의하게 되어 기쁘게 생각합니다. 우리는 당신이 우리의 가이드를 즐겼기를 바랍니다! 위에서 읽은 내용은 실제로 “실제 이야기를 통해 디자인 패턴 이해”라는 책의 한 장입니다. 비슷한 방법으로 더 많은 디자인 패턴을 배우고 싶다면 여기에서 책을 확인하십시오.

이 게시물에서는 클래스에 대한 인스턴스를 만들기위한 또 다른 생성 패턴, 즉 공장 패턴을 보여 줍니다. 공장에서, 이름에서 알 수 있듯이, 기능에서 어떻게 든 비슷한 아직 범주로 나누어 몇 가지 다른 제품을 만들 수 있는 장소입니다. 팩터리 메서드는 개체 생성과 관련된 생성 설계 패턴입니다. 팩터리 패턴에서는 생성 논리를 클라이언트에 노출하지 않고 개체를 만들고 클라이언트는 동일한 공통 인터페이스를 사용하여 새 유형의 개체를 만듭니다. 이 아이디어는 인스턴스를 만들고 반환하는 정적 멤버 함수(정적 팩터리 메서드)를 사용하여 사용자로부터 클래스 모듈의 세부 정보를 숨기는 것입니다. 이 예제에서는 반환되는 “Dog”가 지정한 기준과 일치하는 다양한 Dog 유형을 반환할 수 있는 간단한 “개 팩토리”를 만듭니다. 예를 들어, 나는 작은 개, 또는 큰 개를 원하는 공장을 말할 수 있습니다, 개 공장은 나에게 내가 요구한 유형의 개를 줄 것이다.