>  기사  >  Java  >  Java 팩토리 디자인 패턴 강좌에 대한 자세한 설명

Java 팩토리 디자인 패턴 강좌에 대한 자세한 설명

(*-*)浩
(*-*)浩원래의
2019-11-26 14:30:461988검색

Java 팩토리 디자인 패턴 강좌에 대한 자세한 설명

팩토리 패턴은 Java에서 가장 일반적으로 사용되는 디자인 패턴 중 하나입니다. 이러한 유형의 디자인 패턴은 객체를 생성하는 가장 좋은 방법 중 하나를 제공하기 때문에 생성 패턴입니다.

팩토리 패턴에서는 클라이언트에 생성 논리를 노출하여 객체를 생성하고 공통 인터페이스를 사용하여 새로 생성된 객체를 참조하지 않습니다. ​​​(추천 학습: java 강좌)

구현 방법

Shape 인터페이스와 이를 구현하는 구체적인 클래스를 만들어 보겠습니다. 팩토리 클래스 ShapeFactory는 다음 단계에서 정의됩니다.

FactoryPatternDemo ShapeFactory를 사용하여 Shape 객체를 얻는 데모 클래스입니다. 필요한 개체 유형을 가져오기 위해 정보(CIRCLE/RECTANGLE/SQUARE)를 ShapeFactory에 전달합니다.

팩토리 패턴을 구현하는 구조는 아래와 같습니다-

Java 팩토리 디자인 패턴 강좌에 대한 자세한 설명

1단계

인터페이스 생성-

Shape.java
public interface Shape {
   void draw();
}

2단계

동일한 구현을 생성합니다. 인터페이스. 아래에는 여러 클래스가 나와 있습니다. -

Rectangle.java
public class Rectangle implements Shape {
   @Override
   public void draw() {
      System.out.println("Inside Rectangle::draw() method.");
   }
}
Square.java
public class Square implements Shape {
   @Override
   public void draw() {
      System.out.println("Inside Square::draw() method.");
   }
}
Circle.java
public class Circle implements Shape {
   @Override
   public void draw() {
      System.out.println("Inside Circle::draw() method.");
   }
}

3단계

주어진 정보를 기반으로 특정 클래스의 객체를 생성하는 팩토리를 생성합니다.

ShapeFactory.java
public class ShapeFactory {
   //use getShape method to get object of type shape 
   public Shape getShape(String shapeType){
      if(shapeType == null){
         return null;
      }        
      if(shapeType.equalsIgnoreCase("CIRCLE")){
         return new Circle();
      } else if(shapeType.equalsIgnoreCase("RECTANGLE")){
         return new Rectangle();
      } else if(shapeType.equalsIgnoreCase("SQUARE")){
         return new Square();
      }
      return null;
   }
}

4단계

팩토리를 사용하여 유형 등의 정보를 전달하여 특정 클래스의 객체를 얻습니다.

FactoryPatternDemo.java
public class FactoryPatternDemo {
   public static void main(String[] args) {
      ShapeFactory shapeFactory = new ShapeFactory();
      //get an object of Circle and call its draw method.
      Shape shape1 = shapeFactory.getShape("CIRCLE");
      //call draw method of Circle
      shape1.draw();
      //get an object of Rectangle and call its draw method.
      Shape shape2 = shapeFactory.getShape("RECTANGLE");
      //call draw method of Rectangle
      shape2.draw();
      //get an object of Square and call its draw method.
      Shape shape3 = shapeFactory.getShape("SQUARE");
      //call draw method of circle
      shape3.draw();
   }
}

5단계

검증 출력은 다음과 같습니다 -

Inside Circle::draw() method.
Inside Rectangle::draw() method.
Inside Square::draw() method.

위 내용은 Java 팩토리 디자인 패턴 강좌에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.