> 백엔드 개발 > PHP 튜토리얼 > 졸업 프로젝트 PPT 형식은 PHP 디자인 패턴에 공장 패턴을 도입합니다.

졸업 프로젝트 PPT 형식은 PHP 디자인 패턴에 공장 패턴을 도입합니다.

WBOY
풀어 주다: 2016-07-29 08:38:10
원래의
1318명이 탐색했습니다.

질문
이런 "복잡한" 객체를 붙여넣기와 복사 없이 어떻게 쉽고 편리하게 만들 수 있나요?
해결책
팩토리(함수 또는 클래스 메서드)를 만들어 새 객체를 생성합니다. 팩토리의 유용성을 이해하려면 다음과 같은 차이점을 상상해 보세요...
코드:

코드 복사 코드는 다음과 같습니다.


$connection =& new MySqlConnection($user, $password, $database)


... 코드를 확장 가능하고 간결하게 만드세요...

코드 복사 코드는 다음과 같습니다.


$connection =& create_connection()


후자의 코드 스니펫 데이터베이스 연결에 중점을 둡니다. 방금 언급한 것처럼 create_connect() 팩토리는 데이터베이스 연결을 생성하는 프로세스를 새 작업과 마찬가지로 간단한 작업으로 만듭니다. 팩토리 패턴의 장점은 객체를 생성한다는 점입니다. 그 임무는 객체 생성 프로세스를 캡슐화한 다음 필요한 새 클래스를 반환하는 것입니다.
객체의 구조와 객체 생성 방식을 변경하고 싶으십니까? 객체 팩토리를 선택하고 코드를 한 번만 변경하면 됩니다. (팩토리 패턴의 기능은 워낙 강력해서 애플리케이션 하단에 있기 때문에 앞으로도 여러 복잡한 패턴과 애플리케이션에 계속 등장할 예정입니다.)
샘플 코드
팩토리 패턴은 객체 생성을 캡슐화합니다. 프로세스 . 개체 자체 또는 추가 팩토리 클래스에 개체 팩터리를 만들 수 있습니다. 이는 특정 응용 프로그램에 따라 다릅니다. 팩토리 객체의 예를 살펴보겠습니다.
다음 코드에서 데이터베이스 연결 부분이 반복적으로 나타나는 것을 확인했습니다.

코드 복사 코드는 다음과 같습니다.


/ / PHP4
class Product {
function getList() { $db =& new MysqlConnection(DB_USER, DB_PW, DB_NAME)
//...
}
function getByName($name ) { $db =& new MysqlConnection(DB_USER, DB_PW, DB_NAME)
//...
}
//...
}

왜 안되나요? 데이터베이스 연결 매개변수가 너무 많은 곳에 나타납니다. 이러한 매개변수를 상수로 설정하면 이를 균일하게 정의하고 이에 값을 할당한다는 의미입니다.
연결 데이터베이스 매개변수를 쉽게 변경할 수 있지만 연결 코드를 모두 변경하지 않으면 이러한 매개변수의 순서를 추가하거나 변경할 수 없습니다.
PostgresqlConnection과 같은 다른 데이터베이스에 연결하기 위해 새 클래스를 쉽게 인스턴스화할 수 없습니다.
이 때문에 연결 개체의 상태를 단독으로 테스트하고 확인하기가 어렵습니다.
공장 설계 패턴을 사용하면 코드가 크게 향상됩니다.

코드 복사 코드는 다음과 같습니다.


class Product {
function getList() {
$db =& $this->_getConnection()
//...
}
function &_getConnection() {
return new MysqlConnection(DB_USER, DB_PW, DB_NAME);
}
}

이전 클래스에서는 new MysqlConnection(DB_USER, DB_PW, DB_NAME)을 호출하는 방법이 많았는데 이제는 모두 _getConnection() 메소드에 집중되어 있습니다.

위 내용은 졸업 프로젝트 ppt 형식을 소개하고, PHP 디자인 모드에 팩토리 모드를 도입한 내용을 포함하여, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿