자바에서 팩토리 메소드를 구현하는 방법



이 기사는 예제와 함께 Java에서 Factory Method를 구현하는 방법에 대한 상세하고 포괄적 인 지식을 제공합니다.

클래스와 객체는 작업 할 주요 프로그래밍 언어 중 하나입니다. 이 기사에서는 Java의 Factory Method가 무엇인지 다음 순서로 설명합니다.

Java의 Factory Method는 무엇입니까?





공장 패턴 또는 자바의 팩토리 메소드 하위 클래스는 클래스의 객체를 생성하는 책임이 있다고 말합니다. 다시 말해, 팩토리 방법 패턴 생성 된 개체의 정확한 클래스를 지정하지 않고 팩토리 메서드를 사용하여 개체를 만드는 데 사용되는 생성 패턴입니다. Factory Methods라고도합니다. 가상 생성자 .

c의 연결 목록 프로그램

Java 로고의 팩토리 메소드



Factory Methods에서는 생성 로직을 클라이언트에 노출하지 않고 객체를 생성합니다. 클라이언트는 동일한 공통 인터페이스를 사용하여 새로운 유형의 개체를 만듭니다.

팩토리 방식의 장점

  • 생성 할 객체 유형은 하위 클래스에서 선택합니다. Factory Method는 이것을 허용합니다.

  • 코드에서 응용 프로그램 별 클래스를 바인딩 할 필요가 없으므로 느슨한 결합 .



팩토리 방식의 사용

  • 클래스가 어떤 서브 클래스가 필요한지 알지 못할 때 사용됩니다.

  • 클래스가 생성해야하는 객체를 지정하기 위해 하위 클래스를 원할 때 사용됩니다.

  • 부모 클래스는 하위 클래스의 개체 생성을 선택하고 팩토리 메서드를 사용합니다.

iOS 개발자는 무엇을합니까

Factory Method를 언제 사용합니까?

Loose Coupling은 Factory Method Patterns에 의해 클래스 사이에 도입되었습니다.이는 가장 중요한 원칙 중 하나이며 아키텍처를 설계 할 때 적용되어야합니다. 우리의 아키텍처는 프로그램 아키텍처에 느슨한 결합을 도입하여 더 유연하고 덜 취약하게 만들 수 있습니다.

다음은 예제 코드입니다.

interface ImageReader {DecodedImage getDecodeImage ()} class DecodedImage {private String image public DecodedImage (String image) {this.image = image} @Override public String toString () {return image + ': is decoded'}} class GifReader implements ImageReader { private DecodedImage decodedImage public GifReader (String image) {this.decodedImage = new DecodedImage (image)} @Override public DecodedImage getDecodeImage () {return decodedImage}} class JpegReader는 ImageReader를 구현합니다 {private DecodedImage decodedImage public JpegReader (String image) {decodedImage = new DecodedImage (image)} @Override public DecodedImage getDecodeImage () {return decodedImage}} public class FactoryMethodDemo {public static void main (String [] args) {DecodedImage decodedImage ImageReader reader = null String image = 'image.jpeg'String format = image .substring (image.indexOf ( '.') + 1, (image.length ())) if (format.equals ( 'gif')) {reader = new GifReader (image)} if (format.equals ( 'jpeg ')) {독자 = new JpegReader (image)} assert reader! = null decodedImage = reader.getDecodeImage () System.out.println (decodedImage)}}

산출:

코드 설명

이 코드는 팩토리 메소드가 설정되는 방법을 보여줍니다. 이미지를 디코딩하는 특정 작업을 각각 수행하는 여러 클래스가 생성됩니다. FactoryMethodDemo라는 드라이버 클래스가 있습니다.

C ++ 네임 스페이스 란?

.jpeg 또는 .gif 등의 확장자를 가져야하는 인수를 전달합니다. 확장자에 따라 jpeg 리더 또는 gif 리더에 대한 클래스 객체가 생성되고 그에 따라 실행이 수행됩니다.

이것으로 우리는 자바의 팩토리 메소드 기사를 마칩니다. 이러한 방법을 이해 하셨기를 바랍니다.

확인 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Java 개발자가 되고자하는 학생과 전문가를 위해 설계되었습니다.