자바 디자인 모델 의 간단 한 공장 모델

2276 단어 자바공장 모드
계산기 프로그램 을 만 들 때 비 즈 니스 논리 와 디 스 플레이 를 분리 할 수 있 습 니 다.비 즈 니스 논 리 는 하나의 클래스(패키지)로 봉 인 됩 니 다.연산 을 새로 추가 하려 면 먼저 Operation 의 기본 클래스 를 만 든 다음 에 각종 연산 이 Operation 류 에서 계승 되 고 GetResult()가상 함 수 를 실현 할 수 있 습 니 다.이때 새로운 연산 을 추가 하려 면 새로운 클래스 만 파생 시 켜 야 합 니 다.즉,이전의 연산 이 컴 파일 에 참여 하지 않 아 도 됩 니 다.어떻게 계산기 에 내 가 어떤 연산 을 사용 하고 싶 은 지 알 게 합 니까?이 실례 를 만 드 는 과정 을 단독으로 고려 해 야 한다.이것 이 바로 공장 이다.OperationFactory 클래스 를 만 들 고 인 자 를 입력 하면 함수 createOperate 가 적당 한 대상 을 실례 화 할 수 있 습 니 다.

자바 코드 는 다음 과 같 습 니 다:

public class OperationFactory {
 public static abstract class Operation
 {  
  private double _numberA = 0;
  private double _numberB = 0;
  
  public double get_numberA() {
   return _numberA;
  }

  public void set_numberA(double _numberA) {
   this._numberA = _numberA;
  }

  public double get_numberB() {
   return _numberB;
  }

  public void set_numberB(double _numberB) {
   this._numberB = _numberB;
  }
  
  abstract double GetResult();
  // TODO Auto-generated constructor stub
 }
 
 public static class OperationAdd extends Operation
 {
  double GetResult() 
  {
   double result = get_numberA() + get_numberB();
   return result;
  }  
 }
 
 public static class OperationSub extends Operation
 {
  double GetResult() {
   double result = get_numberA() - get_numberB();
   return result; 
  }
 }
 
 
 public static Operation createOperate(String operate){
  Operation oper = null;
  if (operate.equals("+")) {
   oper = new OperationAdd();
  }
  else if (operate.equals("-")) {
   oper = new OperationSub();
  }

  return oper;
 }

 public static void main(String[] args) {
  Operation oper;
  oper = OperationFactory.createOperate("+");
  oper.set_numberA(1);
  oper.set_numberB(2);
  double result = oper.GetResult();
 }
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기