>Java >java지도 시간 >자바 디자인 패턴 소개 메멘토 패턴

자바 디자인 패턴 소개 메멘토 패턴

高洛峰
高洛峰원래의
2017-01-19 15:44:331295검색

메멘토 정의: 메멘토는 다른 개체의 내부 상태 복사본을 저장하는 개체이므로 나중에 해당 개체를 원래 저장된 상태로 복원할 수 있습니다.

Memento 모드는 비교적 이해하기 쉽습니다. 다음 코드를 살펴보겠습니다.

public class Originator {
   private int number;
  private File file = null;
  public Originator(){}
  // 创建一个Memento
  public Memento getMemento(){
    return new Memento(this);
  }
  // 恢复到原始值
  public void setMemento(Memento m){
     number = m.number;
     file = m.file;
  }
}

Memento 클래스를 다시 살펴보겠습니다.

private class Memento implements java.io.Serializable{
  private int number;
  private File file = null;
  public Memento( Originator o){
    number = o.number;
    file = o.file;
  }
}

Memento가 파일의 값은 Originator에 저장됩니다. Originator를 호출하여 번호와 파일 값이 변경된 경우 setMemento() 메소드를 호출하여 복원할 수 있습니다.

메멘토 모드의 단점은 비용이 많이 든다는 것입니다. 내부 상태가 많으면 또 다른 복사본을 저장하면 메모리가 많이 낭비됩니다.

Jsp+Javabean에서 Memento 패턴 적용

Jsp 애플리케이션에는 일반적으로 사용자 등록, 이름, 이메일 등 사용자 입력이 필요한 양식이 많이 있습니다. 사용자가 "제출"을 누르고 Jsp 프로그램을 통해 확인한 후 실제로 채워지지 않은 항목이 있음을 발견하면 해당 항목 아래에 경고 또는 오류가 표시되기를 바랍니다. 동시에 사용자가 방금 입력한 테이블 항목도 표시됩니다.

아래 사진에서는 사용자가 이름을 입력했지만 성은 입력하지 않았습니다. 빨간색 텍스트 경고가 표시됩니다

자바 디자인 패턴 소개 메멘토 패턴

이 기술의 구현은 Javabeans의 범위="요청" 또는 범위="세션" 특성이 Memento 패턴을 사용하는 것입니다.

Java 디자인 패턴의 Memento 모드(Memento 모드) 도입과 관련된 더 많은 글은 PHP 중국어 홈페이지를 주목해주세요!

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