
설명하다
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 팩토리 모드에 대한 소개입니다. 모든 분들께 도움이 되기를 바랍니다.