이 글은 주로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!