>백엔드 개발 >PHP 튜토리얼 >PHP의 싱글톤 모드와 팩토리 모드

PHP의 싱글톤 모드와 팩토리 모드

高洛峰
高洛峰원래의
2017-02-18 16:22:251314검색

싱글턴 패턴의 개념

싱글턴 패턴은 전체 애플리케이션에서 클래스가 하나의 객체 인스턴스만을 갖는 디자인 패턴을 말합니다.

싱글턴 패턴의 특징


클래스는 전체 애플리케이션에서 하나의 인스턴스만 갖습니다.

이 인스턴스는 클래스가 직접 생성해야 합니다.

이 인스턴스를 전체 시스템에 직접 제공해야 합니다.

PHP에서 싱글턴 모드를 사용하는 이유

PHP에서 제가 작업하는 대부분은 다음을 포함하여 다양한 데이터베이스를 다루는 작업입니다. mysql, redis, Memcache 및 기타 관계형 및 비관계형 데이터베이스이므로 애플리케이션에서 데이터베이스에 연결하는 데 많은 작업이 필요합니다. 싱글톤 모드를 사용하지 않으면 매번 새로운 작업이 필요하지만 각각 new는 메모리 자원과 시스템 자원을 많이 소모하게 되며, 데이터베이스 연결을 열고 닫을 때마다 엄청난 테스트이자 데이터베이스 낭비가 됩니다.


클래스의 유일한 인스턴스를 보유하는 정적 멤버 변수가 필요합니다(보통 $instance는 개인 변수입니다).

생성자 및 복제 함수를 선언해야 합니다. private, 외부 프로그램 새 클래스가 싱글턴 모드

의 의미를 잃지 않도록 하려면 이 인스턴스에 액세스하기 위한 공용 정적 메서드를 제공해야 하며 이를 통해 유일한 인스턴스

//设计模式
//单例模式  都是使用同一个对象
//class Ren
//{
//    public $name;
//    private static $dx;   //存储对象
//
//    private function __construct()
//    {
//
//    }
//
//    public static function DuiXiang()
//    {
//        if(empty(self::$dx))
//        {
//            self:;$dx=new Ren();
//        }
//        return self::$dx;
//    }
//}
//
//$r= Ren::DuiXiang();

//把构造函数变为私有
//做了一个方法来间接造对象
//在该方法里面加限制
에 대한 참조를 반환해야 합니다.

팩토리 클래스

다른 객체를 생성하는 데 특별히 사용되는 메서드가 포함된 클래스를 말합니다. 팩토리 클래스는 다형성 프로그래밍에 있어서 매우 중요합니다. 클래스의 동적 교체를 허용하므로 구성을 수정하면 일반적으로 애플리케이션이 더 유연해지며 고급 PHP 개발자는 팩토리 모드에 능숙해지는 것이 중요합니다.

팩토리 패턴은 일반적으로 유사한 인터페이스를 준수하는 다양한 클래스를 반환하는 데 사용됩니다. 팩토리의 일반적인 용도는 다형성 공급자를 생성하여 애플리케이션 논리 또는 구성 설정에 따라 인스턴스화해야 하는 클래스를 결정할 수 있도록 하는 것입니다. 예를 들어, 애플리케이션의 다른 부분을 리팩터링할 필요 없이 새 확장 이름을 사용하도록 해당 공급자를 사용하여 클래스를 확장할 수 있습니다.

일반적으로 팩토리 패턴에는 기본적으로 Factory라는 이름의 정적 메서드가 있지만 이는 원칙일 뿐이며 이 정적 메서드는 임의로 이름을 지정할 수도 있습니다. 모든 데이터의 매개변수를 허용합니다. 객체를 반환해야 합니다.

class YunSuan
{
    public $a;
    public $b;
    function Suan()
    {
        echo "对两个数进行运算";
    }
rrree

PHP의 싱글톤 모드와 팩토리 모드에 관한 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

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