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.
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 struktur: Tentukan hubungan antara kelas dan objek.
Corak tingkah laku: Mentakrifkan cara objek berkomunikasi dan bekerjasama.
Kes praktikal: Troli beli-belah
Pertimbangkan sistem troli beli-belah, yang mengandungi kelas berikut:
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(); } }
使用代理模式为 Cart
Kesimpulan 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!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");
}
// 其他方法类似处理
}