2010-08-03 2 views
4

한 페이지를 가질 수, 디스플레이를 비디오에 관한 정보의 테이블에 액세스 할 때 :PHP 폼의 상태 디자인 패턴 과도 함이 있습니까?

  • 소스 코드
  • 제목
  • 설명
  • 현재 갤러리
  • 축소판 이미지

이 정보는 페이지에 처음 액세스 할 때 읽기 전용입니다.

다음과 같은 옵션이있는 선택 메뉴가 있습니다 :

  • 편집 설명
  • 만들기 미리보기 (업로드/교체)
  • 편집 소스 코드
  • 변경 갤러리
  • 삭제 비디오

사용자가 옵션을 선택하면 , 데이터의 동일한 초기 테이블이 표시되지만 관련 양식 입력이 필요한 경우 표시됩니다.

예를 들어, "설명 편집"을 선택하면 페이지가 다시로드되고 설명 텍스트가 텍스트 입력으로 바뀝니다. "썸네일 만들기"를 선택하면 파일 업로드 입력이 표시됩니다.

아이디어는 모든 정보를 함께 표시하는 것이지만 동시에 편집 할 수있는 양을 제한하는 것입니다.

  1. 표시 상태
  2. 폼 입력 상태

하지만, : 데이터의 각 부분이이어야 한 두 가지의 상태로있을 수 있기 때문에

나는, 주 패턴이 가능한 솔루션입니다 알고 내 질문은 과잉 상태 패턴을 사용하겠습니까?

현재 페이지에 액세스 할 때마다 양식의 각 부분은 '표시'또는 '입력'상태 여야하는지 여부를 switch 문으로 결정한 다음 그에 따라 작동합니다. 상태 패턴 디자인을 구현하면 양식을 변경하고 유사한 양식을 쉽게 만들 수 있을지 궁금합니다.

감사합니다.

+2

더 나은 방법 : 사용자가 링크를 클릭 할 때 자바 스크립트를 사용하여 양식을 생성하는 이유는 무엇입니까? 그런 다음 그는 페이지를 새로 고침 할 필요가 없습니다. – Artefacto

+0

글쎄, 나는 아직 아약스를 밟지 ​​않았고 간단하게 유지하려고 노력하고있다. –

+1

글쎄, 나는 아약스 제안하지 않았다 (좋은 생각이지만). 양식은 여전히 ​​정상적인 방식으로 제출 될 수 있습니다. 동적으로 양식을 작성하는 것 (또는 HTML에 포함하고 표시를 없음에서 블록으로 변경하는 것)이었습니다. – Artefacto

답변

4

아니요, 상태 디자인 패턴이 과도하지 않습니다. 그것은 아마도 복잡한 인터페이스를 다루기위한 알고리즘의 좋은 선택 일 것입니다. 나는 PHP에서 상태 엔진을 여러 번 사용했다. 문제에 대해 창의적으로 생각하는 데 도움이되며 유연성면에서 보너스를받는 경우가 많습니다.

더 많은 프로그래머들이 그런 것들을 알고 싶습니다.

+1

@staticscan - 감사합니다. 이것은 고무적입니다. –

0

PHP의 상태 패턴을 포함하여 디자인 패턴을 많이 사용할수록 시간을 절약 할 수 있다고 확신합니다. 처음에는 개발하는 데 오래 걸릴 수 있지만 그리 오래 걸리지는 않습니다. 그러나 변경 및 업데이트 할 때 엄청난 시간을 절약 할 수 있습니다.코드가 더 잘 정리되고 명확 해지고 코드에 폭탄을 삽입 할 가능성이 적어서 디자인 패턴 외부의 긴밀한 바인딩을 사용하게됩니다. php5dp.com에서 몇 가지 PHP 디자인 패턴을 수행했지만 상태 dp에서는 아무 것도하지 않았습니다.