Python 디자인 모델 의 간단 한 공장 모델 실례 상세 설명

본 논문 의 사례 는 Python 디자인 모델 의 간단 한 공장 모델 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
간단 한 공장 모드(Simple Factory Pattern):하나의 클래스 를 전문 적 으로 정의 하여 다른 종류의 인 스 턴 스 를 만 드 는 것 입 니 다.만 든 인 스 턴 스 는 보통 공 통 된 부모 클래스 를 가지 고 있 습 니 다.
다음은 간단 한 공장 모델 을 사용 하여 간단 한 사 칙 연산 을 실현 한다.

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
'''
      
                       。            ,    
    ――      
      (Simple Factory Pattern):                     ,                。
'''
class Operation(object):
  '''
         ,         
  '''
  def __init__(self, number1=0, number2=0):
    self.num1 = number1
    self.num2 = number2
  def GetResult(self):
    pass
  pass
#     
class OperationAdd(Operation):
  def GetResult(self):
    return self.num1 + self.num2
#     
class OperationSub(Operation):
  def GetResult(self):
    return self.num1 - self.num2
#     
class OperationMul(Operation):
  def GetResult(self):
    return self.num1 * self.num2
#     
class OperationDiv(Operation):
  def GetResult(self):
    if self.num2 == 0:
      return '     0 '
    return 1.0*self.num1 / self.num2
#      
class OperationUndef(Operation):
  def GetResult(self):
    return '     '
#     
class OperationFactory(object):
  def choose_oper(self,ch):
    if ch == '+':
      return OperationAdd()
    elif ch == '-':
      return OperationSub()
    elif ch == '*':
      return OperationMul()
    elif ch == '/':
      return OperationDiv()
    else:
      return OperationUndef()
if __name__ == "__main__":
  ch = ''
  while not ch == 'q':
    num1 = input('        : ')
    oper = str(raw_input('          : '))
    num2 = input('        : ')
    # Operation(num1,num2)
    OF = OperationFactory()
    oper_obj = OF.choose_oper(oper)
    oper_obj.num1 = num1
    oper_obj.num2 = num2
    print '     : ',oper_obj.GetResult()

실행 결과:
 첫 번 째 수 치 를 입력 하 세 요:  51
네 개의 연산 자 를 입력 하 십시오:  -
두 번 째 수 치 를 입력 하 십시오:  15
연산 결 과 는:  36
이 몇 가지 유형의 구조 도 는 다음 과 같다.

하나의 Operation 클래스 를 부모 클래스 로 정의 하고 연산 클래스 계승 Operation 클래스 를 가감 승제 하 며 Operation Factory 클래스 는 언제 대응 하 는 클래스 를 만 들 것 인 지 를 결정 합 니 다.
더 많은 파 이 썬 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기