구현방법
Shape 인터페이스와 Shape 인터페이스를 구현하는 구체적인 클래스를 만듭니다. 팩토리 클래스 ShapeFactory는 다음 단계에서 정의됩니다.
FactoryPatternDemo 이것은 ShapeFactory를 사용하여 Shape 객체를 얻는 데모 클래스입니다. 필요한 개체 유형을 가져오기 위해 정보(CIRCLE/RECTANGLE/SQUARE)를 ShapeFactory에 전달합니다.
팩토리 패턴을 구현한 구조는 아래 그림과 같습니다-
java-61.jpg
1단계
인터페이스 만들기-
Shape.java
공개인터페이스모양{
voiddraw();
}
2단계
동일한 인터페이스를 구현하는 구체적인 클래스를 만듭니다. 여러 카테고리가 아래에 표시됩니다.
Rectangle.java
publicclassRectangleimplementsShape{
@오버라이드
공공공허 그리기(){
System.out.println("InsideRectangle::draw()method.");
}
}
Square.java
publicclassSquareimplementsShape{
@오버라이드
공공공허 그리기(){
System.out.println("InsideSquare::draw()method.");
}
}
Circle.java
publicclassCircleimplementsShape{
@오버라이드
공공공허 그리기(){
System.out.println("InsideCircle::draw()method.");
}
}
3단계
주어진 정보를 기반으로 특정 클래스의 객체를 생성하는 팩토리를 만듭니다.
ShapeFactory.java
publicclassShapeFactory{
//getShape메서드를 사용하여 typeshape객체를 가져옵니다
publicShapegetShape(StringshapeType){
if(shapeType==null){
returnnull;
}
if(shapeType.equalsIgnoreCase("CIRCLE")){
returnnewCircle();
}elseif(shapeType.equalsIgnoreCase("RECTANGLE")){
returnnewRectangle();
}elseif(shapeType.equalsIgnoreCase("SQUARE")){
returnnewSquare();
}
returnnull;
}
}
4단계
유형과 같은 정보를 전달하여 특정 클래스의 객체를 얻으려면 팩토리를 사용합니다.
FactoryPatternDemo.java
publicclassFactoryPattern데모{
publicstaticvoidmain(String[]args){
ShapeFactoryshapeFactory=newShapeFactory();
//getanobjectofCircleand는 그리기 메서드를 호출합니다.
Shapeshape1=shapeFactory.getShape("원");
//Circle의 그리기 메서드 호출
shape1.draw();
//Rectangle의 객체를 가져오고 그리기 메서드를 호출합니다.
Shapeshape2=shapeFactory.getShape("직사각형");
//Rectangle
의 그리기 메서드를 호출합니다. Shape2.draw();
//Square의 객체를 얻고 그리기 메서드를 호출합니다.
Shapeshape3=shapeFactory.getShape("SQUARE");
//drawmethodofcircle
을 호출합니다. Shape3.draw();
}
}
5단계
검증 출력 결과는 다음과 같습니다-
InsideCircle::draw() 메서드.
InsideRectangle::draw() 메서드.
InsideSquare::draw() 메서드.
위 내용은 Java 팩토리 디자인 패턴에 대한 코드를 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!