설명하다
1. 팩토리 패턴은 new를 사용하지 않고 인스턴스 객체를 생성하는 방법을 해결합니다.
2. 신규 이외의 대상을 생성하는 방법이 몇 가지 있습니다.
생성된 객체의 유형을 변경하려면 팩토리만 변경하면 되며, 이 팩토리를 사용하는 모든 코드는 자동으로 변경됩니다.
3. 일반적으로 인터페이스와 함께 사용되는 경우 애플리케이션은 이러한 인스턴스화된 클래스의 특정 세부 정보를 알 필요가 없습니다.
팩토리가 특정 인터페이스 카테고리를 지원하는 클래스를 반환한다는 것을 알고 있는 한 사용하기 쉽습니다.
예
/** * 사람의 인터페이스를 추상화함 * 인터페이스 사람 */ 인터페이스 사람 { 공개 함수 showInfo(); } /** * 추상 휴먼 인터페이스를 상속받은 학생 클래스 * 클래스 학생 */ 수업 학생 구현 사람 { 공개 함수 showInfo() { echo "학생입니다n"; } } /** * 추상 휴먼 인터페이스를 상속받은 교사 클래스 * 클래스 교사 */ 수업 교사가 사람을 구현함 { 공개 함수 showInfo() { echo "선생님입니다n"; } } /** * 휴먼 팩토리 * 클래스 PersonFactory */ 클래스 PersonFactory { 공개 정적 함수 팩토리($person_type) { // 전달된 유형의 첫 글자를 대문자로 시작합니다. $class_name = ucfirst($person_type); if(클래스_존재($class_name)){ 새로운 $class_name을 반환합니다. }또 다른{ throw new Exception("클래스: $class_name이 존재하지 않습니다.",1); } } } // 학생이 필요합니다 $student = PersonFactory::factory('student'); echo $student->showInfo(); // 선생님이 필요한 경우 $teacher = PersonFactory::factory('teacher'); echo $teacher->showInfo();
위 내용은 PHP 팩토리 모드에 대한 소개입니다. 모든 분들께 도움이 되기를 바랍니다.