Chia sẻ PHP - Design Patterns - Singleton & Registry

Chia sẻ PHP - Design Patterns - Singleton & Registry

Hôm nay mình chia sẻ tới mọi người một khía cạnh khác trên blog cá nhân của mình - code PHP. Mình giới thiệu tới mọi người 2 mẫu design patterns rất phổ biến và đơn giản, đó là mẫu Singleton và mẫu Registry.

Singleton là mẫu thiết kế rất phổ biến trong OOP. Với singleton, sẽ hạn chế việc tạo nhiều thực thể trên cùng  một lớp đối tượng, mà thay vào đó nó sẽ cho phép chúng ta sử dụng chung một thực thể, hay nói một cách khác là dùng một shared instance. Việc này sẽ có lợi điểm cho bộ nhớ của hệ thống, không phải cứ phát sinh  đối tượng tùm lum ra.

Singleton:

<?php
class Singleton
{
    private static $_instance;
    protected function __contruct(){}
    public static function getInstance()
    {
        if (!isset (self::$_instance)) 
            self::$_instance = new self;
        return self::$_instance;
    {
}

Registry: Đây là một mẫu thiết kế cũng đơn giản và cũng rất phổ biến. Mẫu thiết kế này cung cấp một cơ chế để lưu trữ các giá trị toàn cục (global) một cách dễ quản lý hơn.

<?php
class Registry
{
    private static $_instance;
    private $_storage;
    protected function __construct(){}
    public static function getInstance()
    {
        if (!isset (self::$_instance)) 
            self::$_instance = new self;
        return self::$_instance;
    }
    // Xét giá trị thông qua magic call
    public function __set($name, $value)
    {
        $this->_storage[$name] = $value; 
    }
    // Lấy giá trị đã lưu thông qua magic call
    public function __get($name)
    {
        if (isset ($this->_storage[$name])) 
            return $this->_storage[$name];
        throw new Exception ('Không tìm thấy giá trị'); 
    }
    protected function __clone(){}
}
Tags: 
Bạn thấy bài viết này như thế nào?: 
Average: 9.3 (3 votes)
Ảnh của Khanh Hoang

Khanh Hoang - Kenn

Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.

Bình luận (0)

 

Add Comment

Filtered HTML

  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Các thẻ HTML được chấp nhận: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Tự động ngắt dòng và đoạn văn.

Plain text

  • No HTML tags allowed.
  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Tự động ngắt dòng và đoạn văn.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Mobile onpage SEO cho wapsite

Mobile onpage SEO cho wapsite

Đơn giản vì bạn tạo lập Wapsite và google có cơ chế riêng để index wapsite của bạn.Nó dựa vào kết quả này để ưu tiên nội dung của bạn khi người dùng search từ mobile . Bạn có thể thấy biểu tượng đt màu xanh ở bên phải kết quả nếu google nhận dạng đó là wapsite.

Cách xây dựng link liên kết hiệu quả cho seo

Cách xây dựng link liên kết hiệu quả cho seo

Xây dựng links là yếu tố quan trọng nhất trong cạnh tranh thứ hạng trên Google. Có nhiều phương pháp xây dựng links khác nhau

Instagram Tips – Use Instagram Like a Pro

Instagram Tips – Use Instagram Like a Pro

Instagram is one of the most popular app available for Apple iOS and very soon it was available for Android users.

Công ty diệt chuột T&C

 

Diet con trung