Rumah > pembangunan bahagian belakang > tutorial php > Corak reka bentuk PHP dari pemula hingga mahir

Corak reka bentuk PHP dari pemula hingga mahir

王林
Lepaskan: 2024-05-07 15:45:02
asal
1087 orang telah melayarinya

Corak reka bentuk adalah penyelesaian terbukti dalam PHP untuk mencipta kod yang boleh diselenggara, berskala dan boleh digunakan semula. Corak reka bentuk asas boleh dibahagikan kepada kreatif, struktur dan tingkah laku. Kes praktikal menunjukkan aplikasi corak reka bentuk dalam sistem troli beli-belah, termasuk menggunakan corak kilang untuk mencipta objek perkhidmatan diskaun, menggunakan corak proksi untuk menambah fungsi pengelogan pada troli beli-belah, dan melaksanakan pelbagai pengiraan diskaun melalui corak strategi.

PHP 设计模式从入门到精通

Corak Reka Bentuk PHP: Dari Permulaan hingga Penguasaan

Pengenalan

Corak reka bentuk terbukti penyelesaian pengekodan untuk menyelesaikan masalah pengaturcaraan biasa. Dalam PHP, corak reka bentuk membantu kami menulis kod yang boleh diselenggara, boleh dikembangkan dan boleh digunakan semula.

Corak reka bentuk asas

Corak kreatif: Menyediakan mekanisme untuk mencipta objek.

  • Corak Kilang: Buat objek tanpa menyatakan kelas konkrit secara langsung.
  • Singleton Pattern: Memastikan kelas hanya mencipta tika sekali.

Corak struktur: Tentukan hubungan antara kelas dan objek.

  • Mod Penyesuai: Membenarkan antara muka yang tidak serasi berfungsi bersama.
  • Corak Proksi: Menyediakan akses telus kepada objek.
  • Corak Penghias: Tambahkan fungsi baharu pada objek sedia ada secara dinamik.

Corak tingkah laku: Mentakrifkan cara objek berkomunikasi dan bekerjasama.

  • Corak Pemerhati: Untuk mekanisme penerbitan/langgan.
  • Mod Strategi: Membenarkan menukar algoritma pada masa jalan.
  • Corak Kaedah Templat: Tentukan rangka kerja algoritma dan benarkan subkelas untuk menyesuaikan langkah.

Kes praktikal: Troli beli-belah

Pertimbangkan sistem troli beli-belah, yang mengandungi kelas berikut:

  • Cart: Mewakili troli beli-belah, yang menyimpan barang yang dibeli. Cart:表示购物车,存储购买的物品。
  • Item:表示购物车中的单个物品。
  • DiscountService:提供计算折扣的接口。

使用工厂模式创建 DiscountService 对象:

interface DiscountServiceFactory {
  public static function create(): DiscountService;
}

class NormalDiscountService implements DiscountService {
  // ...
}

class PremiumDiscountService implements DiscountService {
  // ...
}

class DiscountServiceFactoryImpl implements DiscountServiceFactory {
  public static function create(): DiscountService {
    if (isPremiumCustomer()) {
      return new PremiumDiscountService();
    }
    return new NormalDiscountService();
  }
}
Salin selepas log masuk

使用代理模式为 CartItem: Mewakili satu item dalam troli beli-belah.

Perkhidmatan Diskaun: Menyediakan antara muka untuk mengira diskaun. . corak Pengiraan diskaun:

class CartLoggerProxy extends Cart {
  private $logger;

  public function __construct(Cart $cart, Logger $logger) {
    parent::__construct();
    $this->cart = $cart;
    $this->logger = $logger;
  }

  public function addItem(Item $item): void {
    parent::addItem($item);
    $this->logger->log("Added item to cart");
  }

  // 其他方法类似处理
}
Salin selepas log masuk

Kesimpulan

Dengan menggunakan corak reka bentuk, kami boleh mencipta kod PHP yang elegan, fleksibel dan boleh diselenggara. Corak reka bentuk asas yang diperkenalkan dalam artikel ini boleh membantu kami menyelesaikan pelbagai cabaran pengaturcaraan dan membina perisian berkualiti tinggi.

Atas ialah kandungan terperinci Corak reka bentuk PHP dari pemula hingga mahir. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan