>  기사  >  Java  >  Java에서 간단한 팩토리 패턴 학습

Java에서 간단한 팩토리 패턴 학습

黄舟
黄舟원래의
2017-10-13 10:16:101170검색

이 글은 주로 Java 디자인 패턴 학습에서 간단한 팩토리 패턴을 자세히 소개합니다. 관심 있는 친구들은 참고할 수 있습니다.

간단한 팩토리 패턴

간단한 팩토리 패턴은 생성 패턴이라고도 합니다. Static Factory Method 패턴이지만 23가지 GOF 디자인 패턴 중 하나가 아닙니다. 단순 팩토리 패턴은 팩토리 객체를 사용하여 생성할 제품 클래스 인스턴스를 결정합니다. 단순 팩토리 패턴은 팩토리 패턴 계열 중 가장 단순하고 실용적인 패턴으로, 다양한 팩토리 패턴을 특수하게 구현한 것으로 이해될 수 있습니다.

간단한 팩토리 패턴을 사용하여 계산기를 디자인합니다.

1: 연산 클래스를 생성합니다


package EasyFactoryModel;

abstract class Operation {

  public double num1=0;
  public double num2=0;
  public double getNum1() {
    return num1;
  }
  public void setNum1(double num1) {
    this.num1 = num1;
  }
  public double getNum2() {
    return num2;
  }
  public void setNum2(double num2) {
    this.num2 = num2;
  }
  
  public abstract double getResult();
}

2: 덧셈 클래스를 생성합니다.


class OpeartionAdd extends Operation {

  public double getResult(){
    double result=0;
    result=num1+num2;
    return result;
  }
}

3: 빼기 클래스를 만듭니다.


public class OpeartionSub extends Operation {
 
  public double getResult(){
    double result=0;
    result=num1-num2;
    return result;
  }
}

4: 곱셈 수업을 만들어보세요.


public class OperationMul extends Operation {

  public double getResult(){
    double result=0;
    result=num1*num2;
    return result;
  }
}

5: 디비전 클래스를 만듭니다.


public class Operationp extends Operation {
 
  public double getResult(){
    double result=0;
    result=num1/num2;
    return result;
  }
}

6: 기본 연산 클래스를 완료한 후에는 필요한 덧셈, 뺄셈, 곱셈 및 나눗셈에 따라 다양한 클래스를 인스턴스화해야 한다는 것을 알게 됩니다.


public class OperationFactory {
 
  public static Operation creatOpera(String operation){
     
    Operation oper=null;
    switch(operation){
     
    case "+":oper=new OpeartionAdd();break;
    case "-":oper=new OpeartionSub();break;
    case "*":oper=new OperationMul();break;
    case "/":oper=new Operationp();break;
     
    }
    return oper;
  }
 
}

팩토리 클래스는 다양한 작업에 따라 다양한 객체를 생성합니다. 여기에는 다형성이 사용됩니다.

7 어떤 특정 클래스 객체를 만들어야 할까요? 간단한 팩토리 패턴을 구현하면 필요한 정보만 전달되기만 하면 사용자는 객체가 어떻게 생성되는지 알 필요가 없습니다.

단점: 팩토리 클래스는 모든 인스턴스의 생성 논리를 중앙 집중화하여 높은 응집력 할당 원칙을 위반합니다.

시스템의 특정 제품 카테고리가 계속 증가함에 따라 공장 카테고리를 지속적으로 수정해야 하며 유지 및 확장이 어렵습니다. 동시에 이는 개방과 폐쇄의 원칙에도 위배됩니다.

위 내용은 Java에서 간단한 팩토리 패턴 학습의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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