Python 디자인 모델 의 비망록 모델 원리 와 용법 에 대한 상세 한 설명
비망록 모드(Memento Pattern):패 키 징 성 을 파괴 하지 않 는 전제 에서 대상 의 내부 상 태 를 포착 하고 이 대상 을 제외 하고 이 상 태 를 저장 합 니 다.그러면 이 대상 을 원래 저 장 된 상태 로 복원 할 수 있 습 니 다.
다음은 비망록 모드 의 demo 입 니 다.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
――
(Memento Pattern): , ,
"""
#
class Originator(object):
def __init__(self, state):
self.state = state
def create_memento(self):
return Memento(self.state)
def set_memento(self, memento):
self.state = memento.state
def show(self):
print " ", self.state
#
class Memento(object):
def __init__(self, state):
self.state = state
#
class Caretaker(object):
def __init__(self,memento):
self.memento = memento
if __name__ == "__main__":
#
originator = Originator(state='On')
originator.show()
#
caretaker = Caretaker(originator.create_memento())
#
originator.state = 'Off'
originator.show()
#
originator.set_memento(caretaker.memento)
originator.show()
실행 결과:현재 상태 On
현재 상태 Off
현재 상태 On
위의 유형의 디자인 은 다음 과 같다.
Originator(발기인):현재 의 내부 상 태 를 기록 하고 비망록 을 사용 하여 내부 상 태 를 회복 할 수 있 는 비망록 Memento 를 만 드 는 것 을 책임 집 니 다.Originator 는 필요 에 따라 Memento 가 Originator 를 저장 하 는 내부 상 태 를 결정 할 수 있 습 니 다.
Memento(비망록):Originator 대상 의 내부 상 태 를 저장 하고 Originator 이외 의 다른 대상 이 비망록 Memento 에 접근 하 는 것 을 방지 할 수 있 습 니 다.
Caretaker(관리자):비망록 Memento 를 잘 저장 하고 비망록 의 내용 을 조작 하거나 검사 할 수 없습니다.
더 많은 파 이 썬 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.