공장 패턴은이 패턴이 오브젝트를 생성하는 더 좋은 방법을 제공하므로 생성 패턴입니다.
Factory 패턴에서는 생성 논리를 클라이언트에 노출시키지 않고 객체를 생성합니다.
예제
다음 섹션에서는 팩토리 패턴을 사용하여 객체를 생성하는 방법을 보여줍니다.
팩터 리 패턴에 의해 생성 된 객체는 원, 직사각형 등의 모양 객체입니다.
먼저 셰이프를 나타 내기위한 인터페이스를 디자인합니다.
public interface Shape { void draw(); }
그런 다음 인터페이스를 구현하는 구체적인 클래스를 작성합니다.
다음 코드는 Rectangle.java를위한 코드입니다.
public class Rectangle implements Shape { @override public void draw() { System.out.println( "내부 직사각형 :: draw() 메서드." ); } }
Square.java
public class Square implements Shape { @override public void draw() { System.out.println( "내부 사각형 :: draw() 메서드." ); } }
Circle.java
public class Circle implements Shape { @override public void draw() { System.out.println( "내부 원형 :: draw () 메서드." ); } }
핵심 팩토리 패턴은 Factory 클래스입니다. 다음 코드는 Shape 객체에 대한 Factory 클래스를 만드는 방법을 보여줍니다.
ShapeFactory 클래스는 getShape () 메서드에 전달 된 String 값을 기반으로 Shape 객체를 만듭니다. String 값이 CIRCLE이면 Circle 객체를 만듭니다.
public class ShapeFactory { // getShape 메서드를 사용하여 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; } }
다음 코드는 main 메소드를 가지고 있으며, Factory 클래스를 사용하여 타입과 같은 정보를 전달하여 구체적인 클래스의 객체를 얻습니다.
public class Main { public static void main (String [] args) { ShapeFactory shapeFactory = 새로운 ShapeFactory (); // 원의 객체를 얻을 과 의 무승부 메서드를 호출합니다. Shape shape1 = shapeFactory.getShape( "CIRCLE" ); // Circle의 call draw 메소드 shape1.draw(); // 사각형의 객체를 얻을 과 의 무승부 메서드를 호출합니다. Shape shape2 = shapeFactory.getShape( "RECTANGLE" ); // Rectangle의 draw 메소드를 호출한다. shape2.draw (); // 광장의 객체를 얻을 과 의 무승부 메서드를 호출합니다. Shape shape3 = shapeFactory.getShape( "SQUARE" ); // 원 그리기 방법 호출 shape3.draw (); } }
위의 코드는 다음 결과를 생성합니다.
내부 원형 :: draw () 메서드.
내부 직사각형 :: draw() 메서드.
내부 사각형 :: draw() 메서드.
'프로그래밍 > 자바 디자인 패턴' 카테고리의 다른 글
JAVA 설치- CentOS, ubuntu, mac (0) | 2021.04.18 |
---|---|
자바 디자인 패턴 튜토리얼 - 자바 디자인 패턴 소개 (0) | 2021.04.18 |
자바 디자인 패턴 튜토리얼 - 자바 디자인 패턴 - 추상 팩토리 패턴 (0) | 2021.04.18 |
자바 디자인 패턴 튜토리얼 - 자바 디자인 패턴 - 싱글 톤 패턴 (0) | 2021.04.18 |
자바 디자인 패턴 튜토리얼 - 자바 디자인 패턴 - 빌더 패턴 (0) | 2021.04.18 |