2020년 새로운 Java 면접 질문 - 디자인 패턴

王林
풀어 주다: 2020-06-22 17:19:30
앞으로
2124명이 탐색했습니다.

2020년 새로운 Java 면접 질문 - 디자인 패턴

단순 팩토리와 추상 팩토리의 차이점은 무엇인가요?

(관련 추천:java 면접 질문)

간단한 팩토리 패턴:

이 패턴 자체는 매우 간단하며 비즈니스가 비교적 단순할 때 사용됩니다. 일반적으로 소규모 프로젝트나 특정 제품이 거의 확장되지 않는 상황(공장 클래스를 자주 변경할 필요가 없도록)에 사용됩니다.

세 가지 역할로 구성됩니다.

  • 공장 역할: 특정 비즈니스 논리와 판단 논리를 포함하는 이 모델의 핵심으로, 다양한 논리를 기반으로 특정 공장 제품이 생산됩니다. 예의 Driver 클래스와 같습니다.

  • 추상 제품 역할: 일반적으로 특정 제품 또는 구현된 인터페이스에서 상속된 상위 클래스입니다. 인터페이스 또는 추상 클래스로 구현됩니다. 예의 Car 인터페이스와 같습니다.

  • 특정 제품 역할: 팩토리 클래스에서 생성된 객체는 이 역할의 인스턴스입니다. 이는 예제의 Benz 및 BMW 클래스와 같은 Java의 구체적인 클래스에 의해 구현됩니다.

(추천 학습:java 입문 프로그램)

클래스 다이어그램을 사용하여 둘 사이의 관계를 명확하게 표현하세요.

2020년 새로운 Java 면접 질문 - 디자인 패턴

추상 팩토리 패턴:

먼저 알아봅시다. 제품군(product family): 다양한 제품 계층에 위치한 관련 기능을 갖춘 제품군입니다.

2020년 새로운 Java 면접 질문 - 디자인 패턴

사진 속 BmwCar와 BenzCar는 두 개의 제품군(제품 계층 구조)이고, 사진 속 BenzSportsCar와 BmwSportsCar는 하나의 제품군입니다. 모두 스포츠카 계열에 배치할 수 있어 기능이 연관되어 있습니다. 마찬가지로 BmwBussinessCar와 BenzBusinessCar도 제품군입니다.

팩토리 메소드 패턴과의 차이점은 객체 생성의 복잡성에 있다고 할 수 있습니다. 게다가 추상 팩토리 패턴은 세 가지 패턴 중에서 가장 추상적이고 일반적입니다. 추상 팩토리 패턴의 목적은 클라이언트에게 여러 제품군에서 제품 개체를 생성할 수 있는 인터페이스를 제공하는 것입니다.

추상 팩토리 패턴을 사용하려면 다음 조건을 충족해야 합니다.

1. 시스템에는 여러 제품군이 있으며 시스템은 한 번에 하나의 제품군만 사용할 수 있습니다.

2. 동일한 제품군을 사용하고 있습니다.

(동영상 튜토리얼 추천:java 동영상 튜토리얼)

추상 팩토리 패턴의 다양한 역할을 살펴보겠습니다(팩토리 메소드와 동일):

  • 추상 팩토리 역할: 이것이 바로 팩토리 메소드 패턴의 핵심은 애플리케이션과 아무 관련이 없습니다. 특정 팩토리 역할이 구현해야 하는 인터페이스이거나 상속되어야 하는 상위 클래스입니다. Java에서는 추상 클래스 또는 인터페이스로 구현됩니다.

  • 특정 팩토리 역할: 특정 비즈니스 로직과 관련된 코드가 포함되어 있습니다. 특정 제품에 해당하는 객체를 생성하기 위해 애플리케이션에서 호출됩니다. 자바에서는 구체적인 클래스로 구현됩니다.

  • 추상 제품 역할: 특정 제품이 상속한 상위 클래스 또는 구현된 인터페이스입니다. Java에는 일반적으로 구현할 추상 클래스 또는 인터페이스가 있습니다.

  • 특정 제품 역할: 특정 팩토리 역할에 의해 생성된 객체는 이 역할의 인스턴스입니다. 이는 Java의 특정 클래스에 의해 구현됩니다.

위 내용은 2020년 새로운 Java 면접 질문 - 디자인 패턴의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!