В этой статье мы анализируем одноэлементный шаблон шаблона проектирования PHP. Чтобы поделиться с вами для вашей справки, следующим образом:
Одноэлементный шаблон-это общий шаблон проектирования, который имеет три характеристики
- 1. Может быть только один экземпляр
- 2. Вы должны создать этот экземпляр самостоятельно
- 3. Этот экземпляр должен быть предоставлен другим объектам
Давайте реализуем это на PHP
Следующий звонок на собеседование
say(); */ //Error reported by the above code: fatal error: call to private signeton:__ construct() //I am signleton output after instantiation $signleton2 = Signleton::getInstance(); $signleton2->say();
Результат операции:
Я-синглтон
Его преимущества и недостатки
преимущество:
- 1. В одноэлементном режиме существует только один экземпляр активного одноэлементного элемента, и все экземпляры одноэлементного класса получают один и тот же экземпляр. Это предотвращает создание экземпляров других объектов и гарантирует, что все объекты получат доступ к экземпляру
- 2. Одноэлементный режим обладает определенной масштабируемостью. Когда класс управляет процессом создания экземпляра, класс обладает соответствующей масштабируемостью при изменении процесса создания экземпляра.
- 3. Обеспечивает контролируемый доступ к уникальному экземпляру.
- 4. Поскольку в системной памяти есть только один объект, он может экономить системные ресурсы. Когда объекты необходимо часто создавать и уничтожать, одноэлементный режим, несомненно, может повысить производительность системы.
- 5. Разрешите переменные целевые экземпляры.
- 6. Избегайте многократного использования общих ресурсов.
Недостатки:
- 1. Это неприменимо к измененным объектам. Если объекты одного и того же типа всегда меняются в разных сценариях использования, один экземпляр приведет к ошибкам в данных и не сможет сохранить состояния друг друга.
- 2. Поскольку в одноэлементном шаблоне нет абстрактного слоя, очень сложно расширить одноэлементный класс.
- 3. Ответственность одной категории слишком велика, что в некоторой степени нарушает “принцип единой ответственности”.
- 4. Злоупотребление одним экземпляром приведет к некоторым негативным проблемам. Например, в целях экономии ресурсов проектирование объекта пула подключений к базе данных в качестве класса одного экземпляра может привести к тому, что слишком много программ будут совместно использовать объект пула подключений и переполнят пул подключений; если созданный объект не используется в течение длительного времени, система распознает его как мусор и будет переработан, что приведет к потере состояния объекта.
В этом преимущество и недостаток одноэлементного режима. Из-за разных типов языков одноэлементный режим PHP отличается
Как мы все знаем, PHP-это интерпретируемый язык сценариев, который позволяет интерпретировать и выполнять каждую страницу PHP, а все связанные с ней ресурсы будут переработаны. Другими словами, PHP не может заставить объект находиться в памяти на уровне языка, что аналогично asp.net Java и другие скомпилированные типы отличаются друг от друга. Например, в Java один экземпляр всегда будет существовать в течение всего жизненного цикла приложения, а переменные являются межстраничными и лицом к лицу, что действительно может сделать этот экземпляр уникальным в жизненном цикле приложения. Однако в PHP все переменные, будь то глобальные переменные или статические члены классов, находятся на уровне страницы. Каждый раз при выполнении страницы будут создаваться новые объекты, и они будут опустошены после выполнения страницы, поэтому кажется, что режим одноэлементного PHP не имеет смысла, поэтому я думаю, что режим одноэлементного PHP предназначен только для нескольких сценариев приложений, когда возникает запрос на уровне одной страницы И требуется общий доступ к одному и тому же объектному ресурсу, чтобы быть полезным
такие как
1. Взаимодействие приложений и баз данных
В приложении будет много операций с базой данных, таких как подключение к базе данных через дескриптор базы данных. Использование одноэлементного режима позволяет избежать большого количества новых
операций, поскольку каждая новая операция потребляет ресурсы памяти и системные ресурсы.
2. Информация о конфигурации управления
Если в системе необходим класс для глобального управления некоторой информацией о конфигурации, можно легко реализовать одноэлементный режим
Для получения дополнительной информации о PHP, пожалуйста, ознакомьтесь со следующими разделами: Введение в объектно-ориентированное программирование PHP, навыки работы с массивами PHP, введение в базовый синтаксис PHP, краткое описание операций PHP и использования операторов, краткое описание использования строк PHP, введение в работу с базой данных PHP + MySQL и общие навыки работы с базой данных PHP
Я надеюсь, что эта статья будет полезна для программирования на PHP.