팩토리 패턴은 Java에서 가장 일반적으로 사용되는 디자인 패턴 중 하나입니다. 이러한 유형의 디자인 패턴은 객체를 생성하는 가장 좋은 방법 중 하나를 제공하기 때문에 생성 패턴입니다.
팩토리 패턴에서는 클라이언트에 생성 논리를 노출하여 객체를 생성하고 공통 인터페이스를 사용하여 새로 생성된 객체를 참조하지 않습니다. (추천 학습: java 강좌)
구현 방법
Shape 인터페이스와 이를 구현하는 구체적인 클래스를 만들어 보겠습니다. 팩토리 클래스 ShapeFactory는 다음 단계에서 정의됩니다.
FactoryPatternDemo ShapeFactory를 사용하여 Shape 객체를 얻는 데모 클래스입니다. 필요한 개체 유형을 가져오기 위해 정보(CIRCLE/RECTANGLE/SQUARE)를 ShapeFactory에 전달합니다.
팩토리 패턴을 구현하는 구조는 아래와 같습니다-
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!